forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			16 lines
		
	
	
		
			582 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			582 B
		
	
	
	
		
			C++
		
	
	
	
| // Only output llvm.assume(llvm.type.test()) if cfi-vcall is disabled and whole-program-vtables is enabled
 | |
| // RUN: %clang_cc1 -flto -fvisibility hidden -fsanitize=cfi-vcall -fwhole-program-vtables -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=CFI %s
 | |
| // RUN: %clang_cc1 -flto -fvisibility hidden -fwhole-program-vtables -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=NOCFI %s
 | |
| 
 | |
| struct S1 {
 | |
|   virtual void f();
 | |
| };
 | |
| 
 | |
| // CHECK: define{{.*}}s1f
 | |
| // CHECK: llvm.type.test
 | |
| // CFI-NOT: llvm.assume
 | |
| // NOCFI: llvm.assume
 | |
| void s1f(S1 *s1) {
 | |
|   s1->f();
 | |
| }
 |