]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/instantiate-temporaries.cpp
Vendor import of clang release_50 branch r309439:
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / instantiate-temporaries.cpp
1 // RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s | FileCheck %s
2
3 struct X {
4   X();
5   ~X();
6 };
7
8 struct Y {
9   X get();
10 };
11
12 struct X2 {
13   X x;
14 };
15
16 template<typename T>
17 void call() {
18   Y().get();
19 }
20
21 // CHECK-LABEL: define weak_odr void @_Z4callIiEvv
22 // CHECK: call void @_ZN1Y3getEv
23 // CHECK-NEXT: call void @_ZN1XD1Ev
24 // CHECK-NEXT: ret void
25 template void call<int>();  
26
27 template<typename T>
28 void compound_literal() {
29   (X2){};
30 }
31
32 // CHECK-LABEL: define weak_odr void @_Z16compound_literalIiEvv
33 // CHECK: call void @_ZN1XC1Ev
34 // CHECK-NEXT: call void @_ZN2X2D1Ev
35 // CHECK-NEXT: ret void
36 template void compound_literal<int>();  
37