// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s | FileCheck %s | |
struct X { | |
X(); | |
~X(); | |
}; | |
struct Y { | |
X get(); | |
}; | |
struct X2 { | |
X x; | |
}; | |
template<typename T> | |
void call() { | |
Y().get(); | |
} | |
// CHECK-LABEL: define weak_odr void @_Z4callIiEvv | |
// CHECK: call void @_ZN1Y3getEv | |
// CHECK-NEXT: call void @_ZN1XD1Ev | |
// CHECK-NEXT: ret void | |
template void call<int>(); | |
template<typename T> | |
void compound_literal() { | |
(X2){}; | |
} | |
// CHECK-LABEL: define weak_odr void @_Z16compound_literalIiEvv | |
// CHECK: call void @_ZN1XC1Ev | |
// CHECK-NEXT: call void @_ZN2X2D1Ev | |
// CHECK-NEXT: ret void | |
template void compound_literal<int>(); | |