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>
call()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>
compound_literal()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
38