1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s |
2 | |
3 | // PR6141 |
4 | template<typename T> |
5 | struct X { |
6 | X(); |
7 | template<typename U> X(X<U>); |
8 | X(const X<T>&); |
9 | }; |
10 | |
11 | void f(X<int>) { } |
12 | |
13 | struct Y : X<int> { }; |
14 | struct Z : X<float> { }; |
15 | |
16 | // CHECK: define i32 @main() |
17 | int main() { |
18 | // CHECK: call void @_ZN1YC1Ev |
19 | // CHECK: call void @_ZN1XIiEC1ERKS0_ |
20 | // CHECK: call void @_Z1f1XIiE |
21 | f(Y()); |
22 | // CHECK: call void @_ZN1ZC1Ev |
23 | // CHECK: call void @_ZN1XIfEC1ERKS0_ |
24 | // CHECK: call void @_ZN1XIiEC1IfEES_IT_E |
25 | // CHECK: call void @_Z1f1XIiE |
26 | f(Z()); |
27 | } |
28 | |