]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/initializer-list-ctor-order.cpp
Vendor import of clang trunk r300422:
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / initializer-list-ctor-order.cpp
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 void @"\01?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 x86_thiscallcc %struct.B* @"\01??0B@@QAE@XZ"
28 // CHECK: call i32 @f()
29 // CHECK: call i32 @g()