Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 1 | ; These tests are based on clang/test/CodeGenCXX/mangle-ms.cpp |
| 2 | ; RUN: llvm-undname < %s | FileCheck %s |
| 3 | |
| 4 | ; CHECK-NOT: Invalid mangled name |
| 5 | |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 6 | ?a@@3HA |
| 7 | ; CHECK: int a |
| 8 | |
| 9 | ?b@N@@3HA |
| 10 | ; CHECK: int N::b |
| 11 | |
| 12 | ?anonymous@?A@N@@3HA |
| 13 | ; CHECK: int N::`anonymous namespace'::anonymous |
| 14 | |
Zachary Turner | addd270 | 2018-08-14 18:54:28 +0000 | [diff] [blame] | 15 | ?$RT1@NeedsReferenceTemporary@@3ABHB |
| 16 | ; CHECK: int const &NeedsReferenceTemporary::$RT1 |
| 17 | ?$RT1@NeedsReferenceTemporary@@3AEBHEB |
| 18 | ; CHECK: int const &NeedsReferenceTemporary::$RT1 |
Zachary Turner | 3a62886 | 2018-07-26 20:20:29 +0000 | [diff] [blame] | 19 | |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 20 | ?_c@@YAHXZ |
| 21 | ; CHECK: int __cdecl _c(void) |
| 22 | |
| 23 | ?d@foo@@0FB |
| 24 | ; CHECK: static short const foo::d |
| 25 | |
| 26 | ?e@foo@@1JC |
| 27 | ; CHECK: static long volatile foo::e |
| 28 | |
| 29 | ?f@foo@@2DD |
| 30 | ; CHECK: static char const volatile foo::f |
| 31 | |
| 32 | ??0foo@@QAE@XZ |
| 33 | ; CHECK: __thiscall foo::foo(void) |
| 34 | |
| 35 | ??0foo@@QEAA@XZ |
| 36 | ; CHECK: __cdecl foo::foo(void) |
| 37 | |
| 38 | ??1foo@@QAE@XZ |
| 39 | ; CHECK: __thiscall foo::~foo(void) |
| 40 | |
| 41 | ??1foo@@QEAA@XZ |
| 42 | ; CHECK: __cdecl foo::~foo(void) |
| 43 | |
| 44 | ??0foo@@QAE@H@Z |
| 45 | ; CHECK: __thiscall foo::foo(int) |
| 46 | |
| 47 | ??0foo@@QEAA@H@Z |
| 48 | ; CHECK: __cdecl foo::foo(int) |
| 49 | |
| 50 | ??0foo@@QAE@PAD@Z |
| 51 | ; CHECK: __thiscall foo::foo(char *) |
| 52 | |
| 53 | ??0foo@@QEAA@PEAD@Z |
| 54 | ; CHECK: __cdecl foo::foo(char *) |
| 55 | |
| 56 | ?bar@@YA?AVfoo@@XZ |
| 57 | ; CHECK: class foo __cdecl bar(void) |
| 58 | |
| 59 | ?bar@@YA?AVfoo@@XZ |
| 60 | ; CHECK: class foo __cdecl bar(void) |
| 61 | |
| 62 | ??Hfoo@@QAEHH@Z |
| 63 | ; CHECK: int __thiscall foo::operator+(int) |
| 64 | |
| 65 | ??Hfoo@@QEAAHH@Z |
| 66 | ; CHECK: int __cdecl foo::operator+(int) |
| 67 | |
Zachary Turner | 5999ebb | 2018-08-01 18:32:47 +0000 | [diff] [blame] | 68 | ??$?HH@S@@QEAAAEANH@Z |
| 69 | ; CHECK: double & __cdecl S::operator+<int>(int) |
| 70 | |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 71 | ?static_method@foo@@SAPAV1@XZ |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 72 | ; CHECK: static class foo * __cdecl foo::static_method(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 73 | |
| 74 | ?static_method@foo@@SAPEAV1@XZ |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 75 | ; CHECK: static class foo * __cdecl foo::static_method(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 76 | |
| 77 | ?g@bar@@2HA |
| 78 | ; CHECK: static int bar::g |
| 79 | |
| 80 | ; undname returns `int *h1`, but it is a bug in their demangler. Their mangler |
| 81 | ; correctly mangles `int *h1` as ?h1@3PAHA and `int * const h1` as ?h1@3QAHA |
| 82 | ?h1@@3QAHA |
| 83 | ; CHECK: int *const h1 |
| 84 | |
| 85 | ?h2@@3QBHB |
| 86 | ; CHECK: int const *const h2 |
| 87 | |
| 88 | ?h3@@3QIAHIA |
Zachary Turner | eedd47c | 2018-07-26 20:25:35 +0000 | [diff] [blame] | 89 | ; CHECK: int *const __restrict h3 |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 90 | |
| 91 | ?h3@@3QEIAHEIA |
Zachary Turner | eedd47c | 2018-07-26 20:25:35 +0000 | [diff] [blame] | 92 | ; CHECK: int *const __restrict h3 |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 93 | |
| 94 | ?i@@3PAY0BE@HA |
| 95 | ; CHECK: int (*i)[20] |
| 96 | |
| 97 | ?FunArr@@3PAY0BE@P6AHHH@ZA |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 98 | ; CHECK: int (__cdecl *(*FunArr)[20])(int, int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 99 | |
| 100 | ?j@@3P6GHCE@ZA |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 101 | ; CHECK: int (__stdcall *j)(signed char, unsigned char) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 102 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 103 | ?funptr@@YAP6AHXZXZ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 104 | ; CHECK: int (__cdecl * __cdecl funptr(void))(void) |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 105 | |
Zachary Turner | 3c58d5b | 2018-07-26 19:56:09 +0000 | [diff] [blame] | 106 | ?k@@3PTfoo@@DT1@ |
| 107 | ; CHECK: char const volatile foo::*k |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 108 | |
Zachary Turner | 3c58d5b | 2018-07-26 19:56:09 +0000 | [diff] [blame] | 109 | ?k@@3PETfoo@@DET1@ |
| 110 | ; CHECK: char const volatile foo::*k |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 111 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 112 | ?l@@3P8foo@@AEHH@ZQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 113 | ; CHECK: int (__thiscall foo::*l)(int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 114 | |
| 115 | ?g_cInt@@3HB |
| 116 | ; CHECK: int const g_cInt |
| 117 | |
| 118 | ?g_vInt@@3HC |
| 119 | ; CHECK: int volatile g_vInt |
| 120 | |
| 121 | ?g_cvInt@@3HD |
| 122 | ; CHECK: int const volatile g_cvInt |
| 123 | |
| 124 | ?beta@@YI_N_J_W@Z |
| 125 | ; CHECK: bool __fastcall beta(__int64, wchar_t) |
| 126 | |
| 127 | ?beta@@YA_N_J_W@Z |
| 128 | ; CHECK: bool __cdecl beta(__int64, wchar_t) |
| 129 | |
| 130 | ?alpha@@YGXMN@Z |
| 131 | ; CHECK: void __stdcall alpha(float, double) |
| 132 | |
| 133 | ?alpha@@YAXMN@Z |
| 134 | ; CHECK: void __cdecl alpha(float, double) |
| 135 | |
| 136 | ?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z |
| 137 | ; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux) |
| 138 | |
| 139 | ?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z |
| 140 | ; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux) |
| 141 | |
| 142 | ?delta@@YAXQAHABJ@Z |
| 143 | ; CHECK: void __cdecl delta(int *const, long const &) |
| 144 | |
| 145 | ?delta@@YAXQEAHAEBJ@Z |
| 146 | ; CHECK: void __cdecl delta(int *const, long const &) |
| 147 | |
| 148 | ?epsilon@@YAXQAY19BE@H@Z |
| 149 | ; CHECK: void __cdecl epsilon(int (*const)[10][20]) |
| 150 | |
| 151 | ?epsilon@@YAXQEAY19BE@H@Z |
| 152 | ; CHECK: void __cdecl epsilon(int (*const)[10][20]) |
| 153 | |
| 154 | ?zeta@@YAXP6AHHH@Z@Z |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 155 | ; CHECK: void __cdecl zeta(int (__cdecl *)(int, int)) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 156 | |
| 157 | ?zeta@@YAXP6AHHH@Z@Z |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 158 | ; CHECK: void __cdecl zeta(int (__cdecl *)(int, int)) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 159 | |
Zachary Turner | 3a62886 | 2018-07-26 20:20:29 +0000 | [diff] [blame] | 160 | ; FIXME: We don't support blocks yet. |
| 161 | |
| 162 | ; ?eta@@YAXP_EAHHH@Z@Z |
| 163 | ; FIXME: void eta(int (^)(int, int)) |
| 164 | ; ?theta@@YAXP_EAHHH@Z@Z |
| 165 | ; FIXME: void theta(int(int,int)^ block) |
| 166 | |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 167 | ??2@YAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 168 | ; CHECK: void * __cdecl operator new(unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 169 | |
| 170 | ??3@YAXPAX@Z |
| 171 | ; CHECK: void __cdecl operator delete(void *) |
| 172 | |
| 173 | ??_U@YAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 174 | ; CHECK: void * __cdecl operator new[](unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 175 | |
| 176 | ??_V@YAXPAX@Z |
| 177 | ; CHECK: void __cdecl operator delete[](void *) |
| 178 | |
| 179 | ?color1@@3PANA |
| 180 | ; CHECK: double *color1 |
| 181 | |
| 182 | ?color2@@3QBNB |
| 183 | ; CHECK: double const *const color2 |
| 184 | |
Zachary Turner | addd270 | 2018-08-14 18:54:28 +0000 | [diff] [blame] | 185 | ; undname prints `double const (* color3)[3]`, but this is a bug in undname. |
| 186 | ?color3@@3QAY02$$CBNA |
| 187 | ; CHECK: double const (*const color3)[3] |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 188 | |
Zachary Turner | addd270 | 2018-08-14 18:54:28 +0000 | [diff] [blame] | 189 | ; undname prints `double const (* color4)[3]`, but this is a bug in undname. |
| 190 | ?color4@@3QAY02$$CBNA |
| 191 | ; CHECK: double const (*const color4)[3] |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 192 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 193 | ?memptr1@@3RESB@@HES1@ |
| 194 | ; CHECK: int volatile B::*volatile memptr1 |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 195 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 196 | ?memptr2@@3PESB@@HES1@ |
| 197 | ; CHECK: int volatile B::*memptr2 |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 198 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 199 | ?memptr3@@3REQB@@HEQ1@ |
| 200 | ; CHECK: int B::*volatile memptr3 |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 201 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 202 | ?funmemptr1@@3RESB@@R6AHXZES1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 203 | ; CHECK: int (__cdecl *volatile B::*volatile funmemptr1)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 204 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 205 | ?funmemptr2@@3PESB@@R6AHXZES1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 206 | ; CHECK: int (__cdecl *volatile B::*funmemptr2)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 207 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 208 | ?funmemptr3@@3REQB@@P6AHXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 209 | ; CHECK: int (__cdecl *B::*volatile funmemptr3)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 210 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 211 | ?memptrtofun1@@3R8B@@EAAXXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 212 | ; CHECK: void (__cdecl B::*volatile memptrtofun1)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 213 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 214 | ?memptrtofun2@@3P8B@@EAAXXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 215 | ; CHECK: void (__cdecl B::*memptrtofun2)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 216 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 217 | ?memptrtofun3@@3P8B@@EAAXXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 218 | ; CHECK: void (__cdecl B::*memptrtofun3)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 219 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 220 | ?memptrtofun4@@3R8B@@EAAHXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 221 | ; CHECK: int (__cdecl B::*volatile memptrtofun4)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 222 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 223 | ?memptrtofun5@@3P8B@@EAA?CHXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 224 | ; CHECK: int volatile (__cdecl B::*memptrtofun5)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 225 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 226 | ?memptrtofun6@@3P8B@@EAA?BHXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 227 | ; CHECK: int const (__cdecl B::*memptrtofun6)(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 228 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 229 | ?memptrtofun7@@3R8B@@EAAP6AHXZXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 230 | ; CHECK: int (__cdecl * (__cdecl B::*volatile memptrtofun7)(void))(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 231 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 232 | ?memptrtofun8@@3P8B@@EAAR6AHXZXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 233 | ; CHECK: int (__cdecl *volatile (__cdecl B::*memptrtofun8)(void))(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 234 | |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 235 | ?memptrtofun9@@3P8B@@EAAQ6AHXZXZEQ1@ |
Zachary Turner | c2403ba | 2018-07-26 20:33:48 +0000 | [diff] [blame] | 236 | ; CHECK: int (__cdecl *const (__cdecl B::*memptrtofun9)(void))(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 237 | |
| 238 | |
| 239 | ?fooE@@YA?AW4E@@XZ |
| 240 | ; CHECK: enum E __cdecl fooE(void) |
| 241 | |
| 242 | ?fooE@@YA?AW4E@@XZ |
| 243 | ; CHECK: enum E __cdecl fooE(void) |
| 244 | |
| 245 | ?fooX@@YA?AVX@@XZ |
| 246 | ; CHECK: class X __cdecl fooX(void) |
| 247 | |
| 248 | ?fooX@@YA?AVX@@XZ |
| 249 | ; CHECK: class X __cdecl fooX(void) |
| 250 | |
| 251 | ?s0@PR13182@@3PADA |
| 252 | ; CHECK: char *PR13182::s0 |
| 253 | |
| 254 | ?s1@PR13182@@3PADA |
| 255 | ; CHECK: char *PR13182::s1 |
| 256 | |
| 257 | ?s2@PR13182@@3QBDB |
| 258 | ; CHECK: char const *const PR13182::s2 |
| 259 | |
| 260 | ?s3@PR13182@@3QBDB |
| 261 | ; CHECK: char const *const PR13182::s3 |
| 262 | |
| 263 | ?s4@PR13182@@3RCDC |
| 264 | ; CHECK: char volatile *volatile PR13182::s4 |
| 265 | |
| 266 | ?s5@PR13182@@3SDDD |
| 267 | ; CHECK: char const volatile *const volatile PR13182::s5 |
| 268 | |
| 269 | ; undname adds an extra const in here, but it seems like their bug. |
| 270 | ?s6@PR13182@@3PBQBDB |
| 271 | ; CHECK: char const *const *PR13182::s6 |
| 272 | |
Zachary Turner | cffbbb1 | 2018-08-10 21:09:05 +0000 | [diff] [blame] | 273 | ?local@?1??extern_c_func@@9@4HA |
| 274 | ; CHECK: int `extern "C" extern_c_func'::`2'::local |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 275 | |
Zachary Turner | cffbbb1 | 2018-08-10 21:09:05 +0000 | [diff] [blame] | 276 | ?local@?1??extern_c_func@@9@4HA |
| 277 | ; CHECK: int `extern "C" extern_c_func'::`2'::local |
Zachary Turner | 3a62886 | 2018-07-26 20:20:29 +0000 | [diff] [blame] | 278 | |
Zachary Turner | c84f7e8 | 2018-07-30 03:12:34 +0000 | [diff] [blame] | 279 | ?v@?1??f@@YAHXZ@4U<unnamed-type-v>@?1??1@YAHXZ@A |
| 280 | ; CHECK: struct `int __cdecl f(void)'::`2'::<unnamed-type-v> `int __cdecl f(void)'::`2'::v |
Zachary Turner | 3a62886 | 2018-07-26 20:20:29 +0000 | [diff] [blame] | 281 | |
Zachary Turner | c84f7e8 | 2018-07-30 03:12:34 +0000 | [diff] [blame] | 282 | ?v@?1???$f@H@@YAHXZ@4U<unnamed-type-v>@?1???$f@H@@YAHXZ@A |
| 283 | ; CHECK: struct `int __cdecl f<int>(void)'::`2'::<unnamed-type-v> `int __cdecl f<int>(void)'::`2'::v |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 284 | |
| 285 | ??2OverloadedNewDelete@@SAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 286 | ; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 287 | |
| 288 | |
| 289 | ??_UOverloadedNewDelete@@SAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 290 | ; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 291 | |
| 292 | ??3OverloadedNewDelete@@SAXPAX@Z |
| 293 | ; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *) |
| 294 | |
| 295 | |
| 296 | ??_VOverloadedNewDelete@@SAXPAX@Z |
| 297 | ; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *) |
| 298 | |
| 299 | ??HOverloadedNewDelete@@QAEHH@Z |
| 300 | ; CHECK: int __thiscall OverloadedNewDelete::operator+(int) |
| 301 | |
| 302 | ??2OverloadedNewDelete@@SAPEAX_K@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 303 | ; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned __int64) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 304 | |
| 305 | ??_UOverloadedNewDelete@@SAPEAX_K@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 306 | ; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned __int64) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 307 | |
| 308 | ??3OverloadedNewDelete@@SAXPEAX@Z |
| 309 | ; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *) |
| 310 | |
| 311 | |
| 312 | ??_VOverloadedNewDelete@@SAXPEAX@Z |
| 313 | ; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *) |
| 314 | |
| 315 | ??HOverloadedNewDelete@@QEAAHH@Z |
| 316 | ; CHECK: int __cdecl OverloadedNewDelete::operator+(int) |
| 317 | |
| 318 | |
| 319 | ??2TypedefNewDelete@@SAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 320 | ; CHECK: static void * __cdecl TypedefNewDelete::operator new(unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 321 | |
| 322 | |
| 323 | ??_UTypedefNewDelete@@SAPAXI@Z |
Zachary Turner | d4bb30e | 2018-07-26 20:20:10 +0000 | [diff] [blame] | 324 | ; CHECK: static void * __cdecl TypedefNewDelete::operator new[](unsigned int) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 325 | |
| 326 | ??3TypedefNewDelete@@SAXPAX@Z |
| 327 | ; CHECK: static void __cdecl TypedefNewDelete::operator delete(void *) |
| 328 | |
| 329 | ??_VTypedefNewDelete@@SAXPAX@Z |
| 330 | ; CHECK: static void __cdecl TypedefNewDelete::operator delete[](void *) |
| 331 | |
| 332 | ?vector_func@@YQXXZ |
| 333 | ; CHECK: void __vectorcall vector_func(void) |
| 334 | |
Zachary Turner | cffbbb1 | 2018-08-10 21:09:05 +0000 | [diff] [blame] | 335 | ??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ |
| 336 | ; CHECK: void __cdecl fn_tmpl<&void __cdecl extern_c_func(void)>(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 337 | |
Zachary Turner | cffbbb1 | 2018-08-10 21:09:05 +0000 | [diff] [blame] | 338 | ?overloaded_fn@@$$J0YAXXZ |
| 339 | ; CHECK: extern "C" void __cdecl overloaded_fn(void) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 340 | |
Zachary Turner | c84f7e8 | 2018-07-30 03:12:34 +0000 | [diff] [blame] | 341 | ?f@UnnamedType@@YAXQAPAU<unnamed-type-T1>@S@1@@Z |
| 342 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::<unnamed-type-T1> **const) |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 343 | |
| 344 | ?f@UnnamedType@@YAXUT2@S@1@@Z |
| 345 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2) |
| 346 | |
| 347 | ?f@UnnamedType@@YAXPAUT4@S@1@@Z |
| 348 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4 *) |
| 349 | |
| 350 | ?f@UnnamedType@@YAXUT4@S@1@@Z |
| 351 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4) |
| 352 | |
| 353 | ?f@UnnamedType@@YAXUT5@S@1@@Z |
| 354 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5) |
| 355 | |
| 356 | ?f@UnnamedType@@YAXUT2@S@1@@Z |
| 357 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2) |
| 358 | |
| 359 | ?f@UnnamedType@@YAXUT4@S@1@@Z |
| 360 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4) |
| 361 | |
| 362 | ?f@UnnamedType@@YAXUT5@S@1@@Z |
| 363 | ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5) |
| 364 | |
Zachary Turner | 3a62886 | 2018-07-26 20:20:29 +0000 | [diff] [blame] | 365 | |
| 366 | ; ?foo@PassObjectSize@@YAHQAHW4__pass_object_size0@__clang@@@Z |
| 367 | ; FIXME: int foo(int *const i __attribute__((pass_object_size(0)))); |
| 368 | ; ?bar@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@@Z |
| 369 | ; FIXME: int bar(int *const i __attribute__((pass_object_size(1)))); |
| 370 | ; ?qux@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@0W4__pass_object_size0@3@@Z |
| 371 | ; FIXME: int qux(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(0)))); |
| 372 | ; ?zot@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@01@Z |
| 373 | ; FIXME: int zot(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(1)))); |
| 374 | |
| 375 | |
| 376 | |
Zachary Turner | 42e40ea | 2018-07-20 17:27:48 +0000 | [diff] [blame] | 377 | ?f@Atomic@@YAXU?$_Atomic@H@__clang@@@Z |
| 378 | ; CHECK: void __cdecl Atomic::f(struct __clang::_Atomic<int>) |
| 379 | |
| 380 | ?f@Complex@@YAXU?$_Complex@H@__clang@@@Z |
| 381 | ; CHECK: void __cdecl Complex::f(struct __clang::_Complex<int>) |
| 382 | |
| 383 | ?f@Float16@@YAXU_Float16@__clang@@@Z |
| 384 | ; CHECK: void __cdecl Float16::f(struct __clang::_Float16) |
| 385 | |
| 386 | |
| 387 | ??0?$L@H@NS@@QEAA@XZ |
| 388 | ; CHECK: __cdecl NS::L<int>::L<int>(void) |
| 389 | |
| 390 | ??0Bar@Foo@@QEAA@XZ |
| 391 | ; CHECK: __cdecl Foo::Bar::Bar(void) |
| 392 | |
| 393 | ??0?$L@V?$H@PAH@PR26029@@@PR26029@@QAE@XZ |
| 394 | ; CHECK: __thiscall PR26029::L<class PR26029::H<int *>>::L<class PR26029::H<int *>>(void) |
Zachary Turner | da9501c | 2018-08-21 21:23:49 +0000 | [diff] [blame] | 395 | |
| 396 | ; ??$emplace_back@ABH@?$vector@HV?$allocator@H@std@@@std@@QAE?A?<decltype-auto>@@ABH@Z |
| 397 | <decltype-auto> __thiscall std::vector<int, class std::allocator<int>>::emplace_back<int const &>(int const &) |