1 | // RUN: %clang_cc1 -std=c++11 %s -emit-llvm -o - -triple i686-linux-gnu | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ITANIUM |
2 | // RUN: %clang_cc1 -std=c++11 %s -emit-llvm -o - -triple i686-windows | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-MS |
3 | |
4 | extern "C" { |
5 | int f(); |
6 | int g(); |
7 | } |
8 | |
9 | struct A { |
10 | A(int, int); |
11 | }; |
12 | |
13 | |
14 | void foo() { |
15 | A a{f(), g()}; |
16 | } |
17 | // CHECK-ITANIUM-LABEL: define void @_Z3foov |
18 | // CHECK-MS-LABEL: define dso_local void @"?foo@@YAXXZ" |
19 | // CHECK: call i32 @f() |
20 | // CHECK: call i32 @g() |
21 | |
22 | struct B : A { |
23 | B(); |
24 | }; |
25 | B::B() : A{f(), g()} {} |
26 | // CHECK-ITANIUM-LABEL: define void @_ZN1BC2Ev |
27 | // CHECK-MS-LABEL: define dso_local x86_thiscallcc %struct.B* @"??0B@@QAE@XZ" |
28 | // CHECK: call i32 @f() |
29 | // CHECK: call i32 @g() |
30 | |