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