forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			20 lines
		
	
	
		
			638 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			638 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm -o - %s -std=c++2a | FileCheck %s
 | |
| 
 | |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-pch -o %t.pch %s -std=c++2a
 | |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin -include-pch %t.pch -x c++ /dev/null -emit-llvm -o - -std=c++2a | FileCheck %s
 | |
| 
 | |
| struct B {
 | |
|   constexpr B() {}
 | |
|   constexpr ~B() { n *= 5; }
 | |
|   int n = 123;
 | |
| };
 | |
| 
 | |
| // We emit a dynamic destructor here because b.n might have been modified
 | |
| // before b is destroyed.
 | |
| //
 | |
| // CHECK: @b = global {{.*}} i32 123
 | |
| B b = B();
 | |
| 
 | |
| // CHECK: define {{.*}}cxx_global_var_init
 | |
| // CHECK: call {{.*}} @__cxa_atexit({{.*}} @_ZN1BD1Ev {{.*}} @b
 |