brintos

brintos / llvm-project-archived public Read only

0
0
Text · 480 B · 2a9055a Raw
21 lines · cpp
1// RUN: %clang_cc1 -std=c++11 -fsanitize=vptr -emit-llvm %s -o - -triple wasm32-unknown-emscripten | FileCheck %s2 3struct S {4  virtual ~S() {}5  int a;6};7 8struct T : S {9  int b;10};11 12// CHECK-LABEL: @_Z15bad_static_castv13void bad_static_cast() {14  S s;15  // CHECK: br i1 %[[NONNULL:.*]], label %[[CONT:.*]], label %[[MISS:.*]], !prof16  // CHECK: [[MISS]]:17  // CHECK: call void @__ubsan_handle_dynamic_type_cache_miss_abort18  // CHECK: [[CONT]]:19  T &r = static_cast<T &>(s);20}21