1 ; RUN: llvm-undname < %s | FileCheck %s
3 ; CHECK-NOT: Invalid mangled name
5 ??0?$AutoNTTPClass@$MPEAH1?i@@3HA@@QEAA@XZ
6 ; CHECK: public: __cdecl AutoNTTPClass<&int i>::AutoNTTPClass<&int i>(void)
8 ??0?$AutoNTTPClass@$1?i@@3HA@@QEAA@XZ
9 ; CHECK: public: __cdecl AutoNTTPClass<&int i>::AutoNTTPClass<&int i>(void)
11 ??0?$AutoNTTPClass@$MPEAH1?i@@3HA$MPEAH1?j@@3HA@@QEAA@XZ
12 ; CHECK: public: __cdecl AutoNTTPClass<&int i, &int j>::AutoNTTPClass<&int i, &int j>(void)
14 ??0?$AutoNTTPClass@$1?i@@3HA$1?j@@3HA@@QEAA@XZ
15 ; CHECK: public: __cdecl AutoNTTPClass<&int i, &int j>::AutoNTTPClass<&int i, &int j>(void)
17 ??0?$AutoNTTPClass@$MP6AHXZ1?Func@@YAHXZ@@QEAA@XZ
18 ; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void)>::AutoNTTPClass<&int __cdecl Func(void)>(void)
20 ??0?$AutoNTTPClass@$1?Func@@YAHXZ@@QEAA@XZ
21 ; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void)>::AutoNTTPClass<&int __cdecl Func(void)>(void)
23 ??0?$AutoNTTPClass@$MP6AHXZ1?Func@@YAHXZ$MP6AHXZ1?Func2@@YAHXZ@@QEAA@XZ
24 ; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void), &int __cdecl Func2(void)>::AutoNTTPClass<&int __cdecl Func(void), &int __cdecl Func2(void)>(void)
26 ??0?$AutoNTTPClass@$1?Func@@YAHXZ$1?Func2@@YAHXZ@@QEAA@XZ
27 ; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void), &int __cdecl Func2(void)>::AutoNTTPClass<&int __cdecl Func(void), &int __cdecl Func2(void)>(void)
29 ??$AutoFunc@$MPEAH1?i@@3HA@@YA?A?<auto>@@XZ
30 ; CHECK: <auto> __cdecl AutoFunc<&int i>(void)
32 ??$AutoFunc@$1?i@@3HA@@YA?A?<auto>@@XZ
33 ; CHECK: <auto> __cdecl AutoFunc<&int i>(void)
35 ??$AutoFunc@$MP6AHXZ1?Func@@YAHXZ@@YA?A?<auto>@@XZ
36 ; CHECK: <auto> __cdecl AutoFunc<&int __cdecl Func(void)>(void)
38 ??$AutoFunc@$1?Func@@YAHXZ@@YA?A?<auto>@@XZ
39 ; CHECK: <auto> __cdecl AutoFunc<&int __cdecl Func(void)>(void)
41 ??$AutoFunc@$MH00@@YA?A?<auto>@@XZ
42 ; CHECK: <auto> __cdecl AutoFunc<1>(void)
44 ??$AutoFunc@$00@@YA?A?<auto>@@XZ
45 ; CHECK: <auto> __cdecl AutoFunc<1>(void)
47 ??0?$AutoNTTPClass@$0A@@@QEAA@XZ
48 ; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void)
50 ??0?$AutoNTTPClass@$MH0A@@@QEAA@XZ
51 ; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void)
53 ??0?$AutoNTTPClass@$0A@$0A@$0GB@@@QEAA@XZ
54 ; CHECK: public: __cdecl AutoNTTPClass<0, 0, 97>::AutoNTTPClass<0, 0, 97>(void)
56 ??0?$AutoNTTPClass@$MH0A@$M_N0A@$MD0GB@@@QEAA@XZ
57 ; CHECK: public: __cdecl AutoNTTPClass<0, 0, 97>::AutoNTTPClass<0, 0, 97>(void)
59 ??0?$AutoNTTPClass@$M$$T0A@@@QEAA@XZ
60 ; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void)
62 ??0?$AutoNTTPClass@$0A@@@QEAA@XZ
63 ; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void)
65 ??0?$AutoNTTPClass@$MP8S@@EAAXXZ1?f@1@QEAAXXZ@@QEAA@XZ
66 ; CHECK: public: __cdecl AutoNTTPClass<&public: void __cdecl S::f(void)>::AutoNTTPClass<&public: void __cdecl S::f(void)>(void)
68 ??0?$AutoNTTPClass@$1?f@S@@QEAAXXZ@@QEAA@XZ
69 ; CHECK: public: __cdecl AutoNTTPClass<&public: void __cdecl S::f(void)>::AutoNTTPClass<&public: void __cdecl S::f(void)>(void)
71 ??0?$AutoNTTPClass@$MP8M@@EAAXXZH?f@1@QEAAXXZA@@@QEAA@XZ
72 ; CHECK: public: __cdecl AutoNTTPClass<{public: void __cdecl M::f(void), 0}>::AutoNTTPClass<{public: void __cdecl M::f(void), 0}>(void)
74 ??0?$AutoNTTPClass@$H?f@M@@QEAAXXZA@@@QEAA@XZ
75 ; CHECK: public: __cdecl AutoNTTPClass<{public: void __cdecl M::f(void), 0}>::AutoNTTPClass<{public: void __cdecl M::f(void), 0}>(void)
77 ??0?$AutoNTTPClass@$MP8V@@EAAXXZI?f@1@QEAAXXZA@A@@@QEAA@XZ
78 ; CHECK: public: __cdecl AutoNTTPClass<{public: void __cdecl V::f(void), 0, 0}>::AutoNTTPClass<{public: void __cdecl V::f(void), 0, 0}>(void)
80 ??0?$AutoNTTPClass@$I?f@V@@QEAAXXZA@A@@@QEAA@XZ
81 ; CHECK: public: __cdecl AutoNTTPClass<{public: void __cdecl V::f(void), 0, 0}>::AutoNTTPClass<{public: void __cdecl V::f(void), 0, 0}>(void)
83 ??0?$AutoNTTPClass@$MPEQS@@H07@@QEAA@XZ
84 ; CHECK: public: __cdecl AutoNTTPClass<8>::AutoNTTPClass<8>(void)
86 ??0?$AutoNTTPClass@$07@@QEAA@XZ
87 ; CHECK: public: __cdecl AutoNTTPClass<8>::AutoNTTPClass<8>(void)
89 ??0?$AutoNTTPClass@$MPEQM@@H0M@@@QEAA@XZ
90 ; CHECK: public: __cdecl AutoNTTPClass<12>::AutoNTTPClass<12>(void)
92 ??0?$AutoNTTPClass@$0M@@@QEAA@XZ
93 ; CHECK: public: __cdecl AutoNTTPClass<12>::AutoNTTPClass<12>(void)
95 ??0?$AutoNTTPClass@$MPEQV@@HFBA@A@@@QEAA@XZ
96 ; CHECK: public: __cdecl AutoNTTPClass<{16, 0}>::AutoNTTPClass<{16, 0}>(void)
98 ??0?$AutoNTTPClass@$FBA@A@@@QEAA@XZ
99 ; CHECK: public: __cdecl AutoNTTPClass<{16, 0}>::AutoNTTPClass<{16, 0}>(void)