| 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 | |