forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			88 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
 | |
| 
 | |
| // CHECK:  @_ZZ4FUNCvEN4SSSSC1ERKf
 | |
| // CHECK: @_ZZ4FUNCvEN4SSSSC2E_0RKf
 | |
| // CHECK:  @_ZZ4GORFfEN4SSSSC1ERKf
 | |
| // CHECK: @_ZZ4GORFfEN4SSSSC2E_0RKf
 | |
| 
 | |
| void FUNC ()
 | |
| {
 | |
|   {
 | |
|     float IVAR1 ;
 | |
| 
 | |
|     struct SSSS 
 | |
|     {
 | |
|       float bv;
 | |
|       SSSS( const float& from): bv(from) { }
 | |
|     };
 | |
| 
 | |
|     SSSS VAR1(IVAR1);
 | |
|    }
 | |
| 
 | |
|    {
 | |
|     float IVAR2 ;
 | |
| 
 | |
|     struct SSSS
 | |
|     {
 | |
|      SSSS( const float& from) {}
 | |
|     };
 | |
| 
 | |
|     SSSS VAR2(IVAR2);
 | |
|    }
 | |
| }
 | |
| 
 | |
| void GORF (float IVAR1)
 | |
| {
 | |
|   {
 | |
|     struct SSSS 
 | |
|     {
 | |
|       float bv;
 | |
|       SSSS( const float& from): bv(from) { }
 | |
|     };
 | |
| 
 | |
|     SSSS VAR1(IVAR1);
 | |
|    }
 | |
| 
 | |
|    {
 | |
|     float IVAR2 ;
 | |
| 
 | |
|     struct SSSS
 | |
|     {
 | |
|      SSSS( const float& from) {}
 | |
|     };
 | |
| 
 | |
|     SSSS VAR2(IVAR2);
 | |
|    }
 | |
| }
 | |
| 
 | |
| // CHECK: @_ZZ12OmittingCodefEN4SSSSC1E_0RKf
 | |
| inline void OmittingCode(float x) {
 | |
|   if (0) {
 | |
|     struct SSSS {
 | |
|       float bv;
 | |
|       SSSS(const float& from): bv(from) { }
 | |
|     };
 | |
| 
 | |
|     SSSS VAR1(x);
 | |
|   }
 | |
| 
 | |
|   struct SSSS {
 | |
|     float bv;
 | |
|     SSSS(const float& from): bv(from) { }
 | |
|   };
 | |
| 
 | |
|   SSSS VAR2(x);
 | |
| }
 | |
| void CallOmittingCode() { OmittingCode(1); }
 | |
| 
 | |
| // CHECK: @_ZZ15LocalAnonStructvENUt0_1gEv
 | |
| inline void LocalAnonStruct() {
 | |
|   if (0) {
 | |
|     struct { void f() {} } x;
 | |
|     x.f();
 | |
|   }
 | |
|   struct { void g() {} } y;
 | |
|   y.g();
 | |
| }
 | |
| void CallLocalAnonStruct() { LocalAnonStruct(); }
 |