forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
 | |
| 
 | |
| // CHECK: @_ZTVZN1J1KEvE1C = {{.*}} @_ZTIZN1J1KEvE1C {{.*}} @_ZZN1J1KEvENK1C1FEv 
 | |
| // CHECK: @_ZTIZN1J1KEvE1C = {{.*}} @_ZTSZN1J1KEvE1C
 | |
| // CHECK: @_ZTVZ1GvE1C_1 = {{.*}} @_ZTIZ1GvE1C_1 {{.*}} @_ZZ1GvENK1C1FE_1v 
 | |
| // CHECK: @_ZTIZ1GvE1C_1 = {{.*}} @_ZTSZ1GvE1C_1
 | |
| // CHECK: @_ZTVZ1GvE1C_0 = {{.*}} @_ZTIZ1GvE1C_0 {{.*}} @_ZZ1GvENK1C1FE_0v 
 | |
| // CHECK: @_ZTIZ1GvE1C_0 = {{.*}} @_ZTSZ1GvE1C_0
 | |
| // CHECK: @_ZTVZ1GvE1C = {{.*}} @_ZTIZ1GvE1C {{.*}} @_ZZ1GvENK1C1FEv 
 | |
| // CHECK: @_ZTIZ1GvE1C = {{.*}} @_ZTSZ1GvE1C
 | |
| 
 | |
| // CHECK: define {{.*}} @_ZZN1J1KEvEN1CC2Ev(
 | |
| // CHECK: define {{.*}} @_ZZN1J1KEvENK1C1FEv(
 | |
| // CHECK: define {{.*}} @_ZZ1GvEN1CC2E_1v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvENK1C1FE_1v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvENK1C1HE_1v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvEN1CC2E_0v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvENK1C1FE_0v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvENK1C1GE_0v(
 | |
| // CHECK: define {{.*}} @_ZZ1GvEN1CC2Ev(
 | |
| // CHECK: define {{.*}} @_ZZ1GvENK1C1FEv(
 | |
| 
 | |
| struct I { 
 | |
|   virtual void F() const = 0;
 | |
| };
 | |
| 
 | |
| void Go(const I &i);
 | |
| 
 | |
| void G() { 
 | |
|   { 
 | |
|     struct C : I { 
 | |
|       void F() const {}
 | |
|     };
 | |
|     Go(C());
 | |
|   }
 | |
|   { 
 | |
|     struct C : I { 
 | |
|       void F() const { G(); }
 | |
|       void G() const {}
 | |
|     };
 | |
|     Go(C());
 | |
|   }
 | |
|   { 
 | |
|     struct C : I { 
 | |
|       void F() const { H(); }
 | |
|       void H() const {}
 | |
|     };
 | |
|     Go(C());
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct J {
 | |
|   void K();
 | |
| };
 | |
| 
 | |
| void J::K() {
 | |
|   struct C : I {
 | |
|     void F() const {}
 | |
|   };
 | |
|   Go(C());
 | |
| }
 |