1; RUN: llvm-undname < %s | FileCheck %s 2 3; CHECK-NOT: Invalid mangled name 4 5??0Base@@QEAA@XZ 6; CHECK: __cdecl Base::Base(void) 7 8??1Base@@UEAA@XZ 9; CHECK: virtual __cdecl Base::~Base(void) 10 11??2@YAPEAX_K@Z 12; CHECK: void * __cdecl operator new(unsigned __int64) 13 14??3@YAXPEAX_K@Z 15; CHECK: void __cdecl operator delete(void *, unsigned __int64) 16 17??4Base@@QEAAHH@Z 18; CHECK: int __cdecl Base::operator=(int) 19 20??6Base@@QEAAHH@Z 21; CHECK: int __cdecl Base::operator<<(int) 22 23??5Base@@QEAAHH@Z 24; CHECK: int __cdecl Base::operator>>(int) 25 26??7Base@@QEAAHXZ 27; CHECK: int __cdecl Base::operator!(void) 28 29??8Base@@QEAAHH@Z 30; CHECK: int __cdecl Base::operator==(int) 31 32??9Base@@QEAAHH@Z 33; CHECK: int __cdecl Base::operator!=(int) 34 35??ABase@@QEAAHH@Z 36; CHECK: int __cdecl Base::operator[](int) 37 38??BBase@@QEAAHXZ 39; CHECK: __cdecl Base::operator int(void) 40 41??CBase@@QEAAHXZ 42; CHECK: int __cdecl Base::operator->(void) 43 44??DBase@@QEAAHXZ 45; CHECK: int __cdecl Base::operator*(void) 46 47??EBase@@QEAAHXZ 48; CHECK: int __cdecl Base::operator++(void) 49 50??EBase@@QEAAHH@Z 51; CHECK: int __cdecl Base::operator++(int) 52 53??FBase@@QEAAHXZ 54; CHECK: int __cdecl Base::operator--(void) 55 56??FBase@@QEAAHH@Z 57; CHECK: int __cdecl Base::operator--(int) 58 59??GBase@@QEAAHH@Z 60; CHECK: int __cdecl Base::operator-(int) 61 62??HBase@@QEAAHH@Z 63; CHECK: int __cdecl Base::operator+(int) 64 65??IBase@@QEAAHH@Z 66; CHECK: int __cdecl Base::operator&(int) 67 68??JBase@@QEAAHH@Z 69; CHECK: int __cdecl Base::operator->*(int) 70 71??KBase@@QEAAHH@Z 72; CHECK: int __cdecl Base::operator/(int) 73 74??LBase@@QEAAHH@Z 75; CHECK: int __cdecl Base::operator%(int) 76 77??MBase@@QEAAHH@Z 78; CHECK: int __cdecl Base::operator<(int) 79 80??NBase@@QEAAHH@Z 81; CHECK: int __cdecl Base::operator<=(int) 82 83??OBase@@QEAAHH@Z 84; CHECK: int __cdecl Base::operator>(int) 85 86??PBase@@QEAAHH@Z 87; CHECK: int __cdecl Base::operator>=(int) 88 89??QBase@@QEAAHH@Z 90; CHECK: int __cdecl Base::operator,(int) 91 92??RBase@@QEAAHXZ 93; CHECK: int __cdecl Base::operator()(void) 94 95??SBase@@QEAAHXZ 96; CHECK: int __cdecl Base::operator~(void) 97 98??TBase@@QEAAHH@Z 99; CHECK: int __cdecl Base::operator^(int) 100 101??UBase@@QEAAHH@Z 102; CHECK: int __cdecl Base::operator|(int) 103 104??VBase@@QEAAHH@Z 105; CHECK: int __cdecl Base::operator&&(int) 106 107??WBase@@QEAAHH@Z 108; CHECK: int __cdecl Base::operator||(int) 109 110??XBase@@QEAAHH@Z 111; CHECK: int __cdecl Base::operator*=(int) 112 113??YBase@@QEAAHH@Z 114; CHECK: int __cdecl Base::operator+=(int) 115 116??ZBase@@QEAAHH@Z 117; CHECK: int __cdecl Base::operator-=(int) 118 119??_0Base@@QEAAHH@Z 120; CHECK: int __cdecl Base::operator/=(int) 121 122??_1Base@@QEAAHH@Z 123; CHECK: int __cdecl Base::operator%=(int) 124 125??_2Base@@QEAAHH@Z 126; CHECK: int __cdecl Base::operator>>=(int) 127 128??_3Base@@QEAAHH@Z 129; CHECK: int __cdecl Base::operator<<=(int) 130 131??_4Base@@QEAAHH@Z 132; CHECK: int __cdecl Base::operator&=(int) 133 134??_5Base@@QEAAHH@Z 135; CHECK: int __cdecl Base::operator|=(int) 136 137??_6Base@@QEAAHH@Z 138; CHECK: int __cdecl Base::operator^=(int) 139 140??_7Base@@6B@ 141; CHECK: const Base::`vftable' 142 143??_7A@B@@6BC@D@@@ 144; CHECK: const B::A::`vftable'{for `D::C'} 145 146??_8Middle2@@7B@ 147; CHECK: const Middle2::`vbtable' 148 149??_9Base@@$B7AA 150; CHECK: [thunk]: __cdecl Base::`vcall'{8, {flat}} 151 152??_B?1??getS@@YAAAUS@@XZ@51 153; CHECK: `struct S & __cdecl getS(void)'::`2'::`local static guard'{2} 154 155??_C@_02PCEFGMJL@hi?$AA@ 156; CHECK: "hi" 157 158??_DDiamond@@QEAAXXZ 159; CHECK: void __cdecl Diamond::`vbase dtor'(void) 160 161??_EBase@@UEAAPEAXI@Z 162; CHECK: virtual void * __cdecl Base::`vector deleting dtor'(unsigned int) 163 164??_EBase@@G3AEPAXI@Z 165; CHECK: [thunk]: private: void * __thiscall Base::`vector deleting dtor'`adjustor{4}'(unsigned int) 166 167??_F?$SomeTemplate@H@@QAEXXZ 168; CHECK: void __thiscall SomeTemplate<int>::`default ctor closure'(void) 169 170??_GBase@@UEAAPEAXI@Z 171; CHECK: virtual void * __cdecl Base::`scalar deleting dtor'(unsigned int) 172 173??_H@YAXPEAX_K1P6APEAX0@Z@Z 174; CHECK: void __cdecl `vector ctor iterator'(void *, unsigned __int64, unsigned __int64, void * (__cdecl *)(void *)) 175 176??_I@YAXPEAX_K1P6AX0@Z@Z 177; CHECK: void __cdecl `vector dtor iterator'(void *, unsigned __int64, unsigned __int64, void (__cdecl *)(void *)) 178 179??_JBase@@UEAAPEAXI@Z 180; CHECK: virtual void * __cdecl Base::`vector vbase ctor iterator'(unsigned int) 181 182??_KBase@@UEAAPEAXI@Z 183; CHECK: virtual void * __cdecl Base::`virtual displacement map'(unsigned int) 184 185??_LBase@@UEAAPEAXI@Z 186; CHECK: virtual void * __cdecl Base::`eh vector ctor iterator'(unsigned int) 187 188??_MBase@@UEAAPEAXI@Z 189; CHECK: virtual void * __cdecl Base::`eh vector dtor iterator'(unsigned int) 190 191??_NBase@@UEAAPEAXI@Z 192; CHECK: virtual void * __cdecl Base::`eh vector vbase ctor iterator'(unsigned int) 193 194??_O?$SomeTemplate@H@@QAEXXZ 195; CHECK: void __thiscall SomeTemplate<int>::`copy ctor closure'(void) 196 197??_SBase@@6B@ 198; CHECK: const Base::`local vftable' 199 200??_TDerived@@QEAAXXZ 201; CHECK: void __cdecl Derived::`local vftable ctor closure'(void) 202 203??_U@YAPEAX_KAEAVklass@@@Z 204; CHECK: void * __cdecl operator new[](unsigned __int64, class klass &) 205 206??_V@YAXPEAXAEAVklass@@@Z 207; CHECK: void __cdecl operator delete[](void *, class klass &) 208 209??_R0?AUBase@@@8 210; CHECK: struct Base `RTTI Type Descriptor' 211 212.?AUBase@@ 213; CHECK: struct Base `RTTI Type Descriptor Name' 214 215??_R1A@?0A@EA@Base@@8 216; CHECK: Base::`RTTI Base Class Descriptor at (0, -1, 0, 64)' 217 218??_R2Base@@8 219; CHECK: Base::`RTTI Base Class Array' 220 221??_R3Base@@8 222; CHECK: Base::`RTTI Class Hierarchy Descriptor' 223 224??_R4Base@@6B@ 225; CHECK: const Base::`RTTI Complete Object Locator' 226 227; Generated for `int Foo = f(4);` at global scope. 228??__EFoo@@YAXXZ 229; CHECK: void __cdecl `dynamic initializer for 'Foo''(void) 230 231; Generated for 232; class C { static int i; }; 233; int C::i = f(5); 234??__E?i@C@@0HA@@YAXXZ 235; CHECK: void __cdecl `dynamic initializer for `private: static int C::i''(void) 236 237??__FFoo@@YAXXZ 238; CHECK: void __cdecl `dynamic atexit destructor for 'Foo''(void) 239 240??__F_decisionToDFA@XPathLexer@@0V?$vector@VDFA@dfa@antlr4@@V?$allocator@VDFA@dfa@antlr4@@@std@@@std@@A@YAXXZ 241; CHECK: void __cdecl `dynamic atexit destructor for `private: static class std::vector<class antlr4::dfa::DFA, class std::allocator<class antlr4::dfa::DFA>> XPathLexer::_decisionToDFA''(void) 242 243??__J?1??f@@YAAAUS@@XZ@51 244; CHECK: `struct S & __cdecl f(void)'::`2'::`local static thread guard'{2} 245 246??__K_deg@@YAHO@Z 247; CHECK: int __cdecl operator ""_deg(long double) 248 249