blob: c08ea781b8cbd654bd8400a46ebba6e188fc87e7 [file] [log] [blame]
Nick Lewycky304584f2011-12-13 00:32:15 +00001// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s | FileCheck %s
Douglas Gregorc7f46f22011-12-10 00:23:21 +00002
3struct X {
4 X();
5 ~X();
6};
7
8struct Y {
9 X get();
10};
11
12struct X2 {
13 X x;
14};
15
16template<typename T>
17void call() {
18 Y().get();
19}
20
Stephen Lin43622612013-08-15 06:47:53 +000021// CHECK-LABEL: define weak_odr void @_Z4callIiEvv
Douglas Gregorc7f46f22011-12-10 00:23:21 +000022// CHECK: call void @_ZN1Y3getEv
23// CHECK-NEXT: call void @_ZN1XD1Ev
24// CHECK-NEXT: ret void
25template void call<int>();
26
27template<typename T>
28void compound_literal() {
29 (X2){};
30}
31
Stephen Lin43622612013-08-15 06:47:53 +000032// CHECK-LABEL: define weak_odr void @_Z16compound_literalIiEvv
Douglas Gregorc7f46f22011-12-10 00:23:21 +000033// CHECK: call void @_ZN1XC1Ev
34// CHECK-NEXT: call void @_ZN2X2D1Ev
35// CHECK-NEXT: ret void
36template void compound_literal<int>();
37