Zachary Turner | 23df131 | 2018-07-26 22:13:39 +0000 | [diff] [blame^] | 1 | ; RUN: llvm-undname < %s | FileCheck %s |
| 2 | |
| 3 | ; CHECK-NOT: Invalid mangled name |
| 4 | |
| 5 | ?f1@@YAXPBD0@Z |
| 6 | ; CHECK: void __cdecl f1(char const *, char const *) |
| 7 | |
| 8 | ?f2@@YAXPBDPAD@Z |
| 9 | ; CHECK: void __cdecl f2(char const *, char *) |
| 10 | |
| 11 | ?f3@@YAXHPBD0@Z |
| 12 | ; CHECK: void __cdecl f3(int, char const *, char const *) |
| 13 | |
| 14 | ?f4@@YAPBDPBD0@Z |
| 15 | ; CHECK: char const * __cdecl f4(char const *, char const *) |
| 16 | |
| 17 | ?f5@@YAXPBDIDPBX0I@Z |
| 18 | ; CHECK: void __cdecl f5(char const *, unsigned int, char, void const *, char const *, unsigned int) |
| 19 | |
| 20 | ?f6@@YAX_N0@Z |
| 21 | ; CHECK: void __cdecl f6(bool, bool) |
| 22 | |
| 23 | ?f7@@YAXHPAHH0_N1PA_N@Z |
| 24 | ; CHECK: void __cdecl f7(int, int *, int, int *, bool, bool, bool *) |
| 25 | |
| 26 | ; FIXME: tests for more than 10 types? |
| 27 | |
| 28 | ?g1@@YAXUS@@@Z |
| 29 | ; CHECK: void __cdecl g1(struct S) |
| 30 | |
| 31 | ?g2@@YAXUS@@0@Z |
| 32 | ; CHECK: void __cdecl g2(struct S, struct S) |
| 33 | |
| 34 | ?g3@@YAXUS@@0PAU1@1@Z |
| 35 | ; CHECK: void __cdecl g3(struct S, struct S, struct S *, struct S *) |
| 36 | |
| 37 | ?g4@@YAXPBDPAUS@@01@Z |
| 38 | ; CHECK: void __cdecl g4(char const *, struct S *, char const *, struct S *) |
| 39 | |
| 40 | ?mbb@S@@QAEX_N0@Z |
| 41 | ; CHECK: void __thiscall S::mbb(bool, bool) |
| 42 | |
| 43 | ?h1@@YAXPBD0P6AXXZ1@Z |
| 44 | ; CHECK: void __cdecl h1(char const *, char const *, void (__cdecl *)(void), void (__cdecl *)(void)) |
| 45 | |
| 46 | ?h2@@YAXP6AXPAX@Z0@Z |
| 47 | ; CHECK: void __cdecl h2(void (__cdecl *)(void *), void *) |
| 48 | |
| 49 | ?h3@@YAP6APAHPAH0@ZP6APAH00@Z10@Z |
| 50 | ; CHECK: int * (__cdecl * __cdecl h3(int * (__cdecl *)(int *, int *), int * (__cdecl *)(int *, int *), int *))(int *, int *) |
| 51 | |
| 52 | ?foo@0@YAXXZ |
| 53 | ; CHECK: void __cdecl foo::foo(void) |