1 // RUN: %clang_cc1 -triple x86_64-apple-darwin -O1 -disable-llvm-passes -emit-llvm -std=c++11 -o - %s | FileCheck %s
17 inline void X0
<T
>::g(T
& t
) {
22 void X0
<T
>::h(T
& t
) {
27 T X0
<T
>::static_var
= 0;
29 extern template struct X0
<int*>;
31 int *&test(X0
<int*> xi
, int *ip
) {
32 // CHECK: define available_externally void @_ZN2X0IPiE1fERS0_
34 // CHECK: define available_externally void @_ZN2X0IPiE1gERS0_
36 // CHECK: declare void @_ZN2X0IPiE1hERS0_
38 return X0
<int*>::static_var
;
47 inline void f1(T
& t
) {
51 extern template void f0
<>(int *&);
52 extern template void f1
<>(int *&);
54 void test_f0(int *ip
, float *fp
) {
55 // CHECK: declare void @_Z2f0IPiEvRT_
57 // CHECK: define linkonce_odr void @_Z2f0IPfEvRT_
61 void test_f1(int *ip
, float *fp
) {
62 // CHECK: define available_externally void @_Z2f1IPiEvRT_
64 // CHECK: define linkonce_odr void @_Z2f1IPfEvRT_