1; RUN: llvm-undname < %s | FileCheck %s 2 3; CHECK-NOT: Invalid mangled name 4 5??0?$AutoNTTPClass@$MPEAH1?i@@3HA@@QEAA@XZ 6; CHECK: public: __cdecl AutoNTTPClass<&int i>::AutoNTTPClass<&int i>(void) 7 8??0?$AutoNTTPClass@$1?i@@3HA@@QEAA@XZ 9; CHECK: public: __cdecl AutoNTTPClass<&int i>::AutoNTTPClass<&int i>(void) 10 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) 13 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) 16 17??0?$AutoNTTPClass@$MP6AHXZ1?Func@@YAHXZ@@QEAA@XZ 18; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void)>::AutoNTTPClass<&int __cdecl Func(void)>(void) 19 20??0?$AutoNTTPClass@$1?Func@@YAHXZ@@QEAA@XZ 21; CHECK: public: __cdecl AutoNTTPClass<&int __cdecl Func(void)>::AutoNTTPClass<&int __cdecl Func(void)>(void) 22 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) 25 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) 28 29??$AutoFunc@$MPEAH1?i@@3HA@@YA?A?<auto>@@XZ 30; CHECK: <auto> __cdecl AutoFunc<&int i>(void) 31 32??$AutoFunc@$1?i@@3HA@@YA?A?<auto>@@XZ 33; CHECK: <auto> __cdecl AutoFunc<&int i>(void) 34 35??$AutoFunc@$MP6AHXZ1?Func@@YAHXZ@@YA?A?<auto>@@XZ 36; CHECK: <auto> __cdecl AutoFunc<&int __cdecl Func(void)>(void) 37 38??$AutoFunc@$1?Func@@YAHXZ@@YA?A?<auto>@@XZ 39; CHECK: <auto> __cdecl AutoFunc<&int __cdecl Func(void)>(void) 40 41??$AutoFunc@$MH00@@YA?A?<auto>@@XZ 42; CHECK: <auto> __cdecl AutoFunc<1>(void) 43 44??$AutoFunc@$00@@YA?A?<auto>@@XZ 45; CHECK: <auto> __cdecl AutoFunc<1>(void) 46 47??0?$AutoNTTPClass@$0A@@@QEAA@XZ 48; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void) 49 50??0?$AutoNTTPClass@$MH0A@@@QEAA@XZ 51; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void) 52 53??0?$AutoNTTPClass@$0A@$0A@$0GB@@@QEAA@XZ 54; CHECK: public: __cdecl AutoNTTPClass<0, 0, 97>::AutoNTTPClass<0, 0, 97>(void) 55 56??0?$AutoNTTPClass@$MH0A@$M_N0A@$MD0GB@@@QEAA@XZ 57; CHECK: public: __cdecl AutoNTTPClass<0, 0, 97>::AutoNTTPClass<0, 0, 97>(void) 58 59??0?$AutoNTTPClass@$M$$T0A@@@QEAA@XZ 60; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void) 61 62??0?$AutoNTTPClass@$0A@@@QEAA@XZ 63; CHECK: public: __cdecl AutoNTTPClass<0>::AutoNTTPClass<0>(void) 64 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) 67 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) 70 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) 73 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) 76 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) 79 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) 82 83??0?$AutoNTTPClass@$MPEQS@@H07@@QEAA@XZ 84; CHECK: public: __cdecl AutoNTTPClass<8>::AutoNTTPClass<8>(void) 85 86??0?$AutoNTTPClass@$07@@QEAA@XZ 87; CHECK: public: __cdecl AutoNTTPClass<8>::AutoNTTPClass<8>(void) 88 89??0?$AutoNTTPClass@$MPEQM@@H0M@@@QEAA@XZ 90; CHECK: public: __cdecl AutoNTTPClass<12>::AutoNTTPClass<12>(void) 91 92??0?$AutoNTTPClass@$0M@@@QEAA@XZ 93; CHECK: public: __cdecl AutoNTTPClass<12>::AutoNTTPClass<12>(void) 94 95??0?$AutoNTTPClass@$MPEQV@@HFBA@A@@@QEAA@XZ 96; CHECK: public: __cdecl AutoNTTPClass<{16, 0}>::AutoNTTPClass<{16, 0}>(void) 97 98??0?$AutoNTTPClass@$FBA@A@@@QEAA@XZ 99; CHECK: public: __cdecl AutoNTTPClass<{16, 0}>::AutoNTTPClass<{16, 0}>(void) 100