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