1 // RUN: %clang_cc1 -std=c++11 -fsanitize=vptr -emit-llvm %s -o - -triple wasm32-unknown-emscripten | FileCheck %s
2
3 struct S {
~SS4 virtual ~S() {}
5 int a;
6 };
7
8 struct T : S {
9 int b;
10 };
11
12 // CHECK-LABEL: @_Z15bad_static_castv
bad_static_cast()13 void bad_static_cast() {
14 S s;
15 // CHECK: br i1 %[[NONNULL:.*]], label %[[CONT:.*]], label %[[MISS:.*]], !prof
16 // CHECK: [[MISS]]:
17 // CHECK: call void @__ubsan_handle_dynamic_type_cache_miss_abort
18 // CHECK: [[CONT]]:
19 T &r = static_cast<T &>(s);
20 }
21