forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			739 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			739 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -std=c++11 %s -emit-llvm -o - -triple i686-linux-gnu | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ITANIUM
 | |
| // RUN: %clang_cc1 -std=c++11 %s -emit-llvm -o - -triple i686-windows   | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-MS
 | |
| 
 | |
| extern "C" {
 | |
| int f();
 | |
| int g();
 | |
| }
 | |
| 
 | |
| struct A {
 | |
|   A(int, int);
 | |
| };
 | |
| 
 | |
| 
 | |
| void foo() {
 | |
|   A a{f(), g()};
 | |
| }
 | |
| // CHECK-ITANIUM-LABEL: define void @_Z3foov
 | |
| // CHECK-MS-LABEL: define dso_local void @"?foo@@YAXXZ"
 | |
| // CHECK: call i32 @f()
 | |
| // CHECK: call i32 @g()
 | |
| 
 | |
| struct B : A {
 | |
|   B();
 | |
| };
 | |
| B::B() : A{f(), g()} {}
 | |
| // CHECK-ITANIUM-LABEL: define void @_ZN1BC2Ev
 | |
| // CHECK-MS-LABEL: define dso_local x86_thiscallcc %struct.B* @"??0B@@QAE@XZ"
 | |
| // CHECK: call i32 @f()
 | |
| // CHECK: call i32 @g()
 |