forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			21 lines
		
	
	
		
			480 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			480 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -std=c++11 -fsanitize=vptr -emit-llvm %s -o - -triple wasm32-unknown-emscripten | FileCheck %s
 | 
						|
 | 
						|
struct S {
 | 
						|
  virtual ~S() {}
 | 
						|
  int a;
 | 
						|
};
 | 
						|
 | 
						|
struct T : S {
 | 
						|
  int b;
 | 
						|
};
 | 
						|
 | 
						|
// CHECK-LABEL: @_Z15bad_static_castv
 | 
						|
void bad_static_cast() {
 | 
						|
  S s;
 | 
						|
  // CHECK: br i1 %[[NONNULL:.*]], label %[[CONT:.*]], label %[[MISS:.*]], !prof
 | 
						|
  // CHECK: [[MISS]]:
 | 
						|
  // CHECK: call void @__ubsan_handle_dynamic_type_cache_miss_abort
 | 
						|
  // CHECK: [[CONT]]:
 | 
						|
  T &r = static_cast<T &>(s);
 | 
						|
}
 |