Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 1 | ; RUN: llvm-undname < %s | FileCheck %s |
| 2 | |
| 3 | ; CHECK-NOT: Invalid mangled name |
| 4 | |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 5 | ??$CallMethod@UC@NegativeNVOffset@@$I??_912@$BA@AEPPPPPPPM@A@@@YAXAAUC@NegativeNVOffset@@@Z |
Zachary Turner | 6e3e8a7 | 2018-08-27 03:48:03 +0000 | [diff] [blame] | 6 | ; CHECK: void __cdecl CallMethod<struct NegativeNVOffset::C, {[thunk]: __thiscall NegativeNVOffset::C::`vcall'{0, {flat}}, 4294967292, 0}>(struct NegativeNVOffset::C &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 7 | |
| 8 | ??$CallMethod@UM@@$0A@@@YAXAAUM@@@Z |
| 9 | ; CHECK: void __cdecl CallMethod<struct M, 0>(struct M &) |
| 10 | |
| 11 | ??$CallMethod@UM@@$H??_91@$BA@AEA@@@YAXAAUM@@@Z |
Zachary Turner | 6e3e8a7 | 2018-08-27 03:48:03 +0000 | [diff] [blame] | 12 | ; CHECK: void __cdecl CallMethod<struct M, {[thunk]: __thiscall M::`vcall'{0, {flat}}, 0}>(struct M &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 13 | |
| 14 | ??$CallMethod@UM@@$H?f@1@QAEXXZA@@@YAXAAUM@@@Z |
Nico Weber | 65bbcca | 2018-11-13 20:18:26 +0000 | [diff] [blame] | 15 | ; CHECK: void __cdecl CallMethod<struct M, {public: void __thiscall M::f(void), 0}>(struct M &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 16 | |
| 17 | ??$CallMethod@UO@@$H??_91@$BA@AE3@@YAXAAUO@@@Z |
Zachary Turner | 6e3e8a7 | 2018-08-27 03:48:03 +0000 | [diff] [blame] | 18 | ; CHECK: void __cdecl CallMethod<struct O, {[thunk]: __thiscall O::`vcall'{0, {flat}}, 4}>(struct O &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 19 | |
| 20 | ??$CallMethod@US@@$0A@@@YAXAAUS@@@Z |
| 21 | ; CHECK: void __cdecl CallMethod<struct S, 0>(struct S &) |
| 22 | |
| 23 | ??$CallMethod@US@@$1??_91@$BA@AE@@YAXAAUS@@@Z |
| 24 | ; CHECK: void __cdecl CallMethod<struct S, &[thunk]: __thiscall S::`vcall'{0, {flat}}>(struct S &) |
| 25 | |
| 26 | ??$CallMethod@US@@$1?f@1@QAEXXZ@@YAXAAUS@@@Z |
Nico Weber | 65bbcca | 2018-11-13 20:18:26 +0000 | [diff] [blame] | 27 | ; CHECK: void __cdecl CallMethod<struct S, &public: void __thiscall S::f(void)>(struct S &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 28 | |
| 29 | ??$CallMethod@UU@@$0A@@@YAXAAUU@@@Z |
| 30 | ; CHECK: void __cdecl CallMethod<struct U, 0>(struct U &) |
| 31 | |
| 32 | ??$CallMethod@UU@@$J??_91@$BA@AEA@A@A@@@YAXAAUU@@@Z |
| 33 | ; CHECK: void __cdecl CallMethod<struct U, {[thunk]: __thiscall U::`vcall'{0, {flat}}, 0, 0, 0}>(struct U &) |
| 34 | |
| 35 | ??$CallMethod@UU@@$J?f@1@QAEXXZA@A@A@@@YAXAAUU@@@Z |
Nico Weber | 65bbcca | 2018-11-13 20:18:26 +0000 | [diff] [blame] | 36 | ; CHECK: void __cdecl CallMethod<struct U, {public: void __thiscall U::f(void), 0, 0, 0}>(struct U &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 37 | |
| 38 | ??$CallMethod@UV@@$0A@@@YAXAAUV@@@Z |
| 39 | ; CHECK: void __cdecl CallMethod<struct V, 0>(struct V &) |
| 40 | |
| 41 | ??$CallMethod@UV@@$I??_91@$BA@AEA@A@@@YAXAAUV@@@Z |
| 42 | ; CHECK: void __cdecl CallMethod<struct V, {[thunk]: __thiscall V::`vcall'{0, {flat}}, 0, 0}>(struct V &) |
| 43 | |
| 44 | ??$CallMethod@UV@@$I?f@1@QAEXXZA@A@@@YAXAAUV@@@Z |
Nico Weber | 65bbcca | 2018-11-13 20:18:26 +0000 | [diff] [blame] | 45 | ; CHECK: void __cdecl CallMethod<struct V, {public: void __thiscall V::f(void), 0, 0}>(struct V &) |
Zachary Turner | 3de8077 | 2018-08-20 19:15:35 +0000 | [diff] [blame] | 46 | |
| 47 | ??$ReadField@UA@@$0?0@@YAHAAUA@@@Z |
| 48 | ; CHECK: int __cdecl ReadField<struct A, -1>(struct A &) |
| 49 | |
| 50 | ??$ReadField@UA@@$0A@@@YAHAAUA@@@Z |
| 51 | ; CHECK: int __cdecl ReadField<struct A, 0>(struct A &) |
| 52 | |
| 53 | ??$ReadField@UI@@$03@@YAHAAUI@@@Z |
| 54 | ; CHECK: int __cdecl ReadField<struct I, 4>(struct I &) |
| 55 | |
| 56 | ??$ReadField@UI@@$0A@@@YAHAAUI@@@Z |
| 57 | ; CHECK: int __cdecl ReadField<struct I, 0>(struct I &) |
| 58 | |
| 59 | ??$ReadField@UM@@$0A@@@YAHAAUM@@@Z |
| 60 | ; CHECK: int __cdecl ReadField<struct M, 0>(struct M &) |
| 61 | |
| 62 | ??$ReadField@UM@@$0BA@@@YAHAAUM@@@Z |
| 63 | ; CHECK: int __cdecl ReadField<struct M, 16>(struct M &) |
| 64 | |
| 65 | ??$ReadField@UM@@$0M@@@YAHAAUM@@@Z |
| 66 | ; CHECK: int __cdecl ReadField<struct M, 12>(struct M &) |
| 67 | |
| 68 | ??$ReadField@US@@$03@@YAHAAUS@@@Z |
| 69 | ; CHECK: int __cdecl ReadField<struct S, 4>(struct S &) |
| 70 | |
| 71 | ??$ReadField@US@@$07@@YAHAAUS@@@Z |
| 72 | ; CHECK: int __cdecl ReadField<struct S, 8>(struct S &) |
| 73 | |
| 74 | ??$ReadField@US@@$0A@@@YAHAAUS@@@Z |
| 75 | ; CHECK: int __cdecl ReadField<struct S, 0>(struct S &) |
| 76 | |
| 77 | ??$ReadField@UU@@$0A@@@YAHAAUU@@@Z |
| 78 | ; CHECK: int __cdecl ReadField<struct U, 0>(struct U &) |
| 79 | |
| 80 | ??$ReadField@UU@@$G3A@A@@@YAHAAUU@@@Z |
| 81 | ; CHECK: int __cdecl ReadField<struct U, {4, 0, 0}>(struct U &) |
| 82 | |
| 83 | ??$ReadField@UU@@$G7A@A@@@YAHAAUU@@@Z |
| 84 | ; CHECK: int __cdecl ReadField<struct U, {8, 0, 0}>(struct U &) |
| 85 | |
| 86 | ??$ReadField@UV@@$0A@@@YAHAAUV@@@Z |
| 87 | ; CHECK: int __cdecl ReadField<struct V, 0>(struct V &) |
| 88 | |
| 89 | ??$ReadField@UV@@$F7A@@@YAHAAUV@@@Z |
| 90 | ; CHECK: int __cdecl ReadField<struct V, {8, 0}>(struct V &) |
| 91 | |
| 92 | ??$ReadField@UV@@$FM@A@@@YAHAAUV@@@Z |
| 93 | ; CHECK: int __cdecl ReadField<struct V, {12, 0}>(struct V &) |
| 94 | |
Zachary Turner | da9501c | 2018-08-21 21:23:49 +0000 | [diff] [blame] | 95 | ?Q@@3$$QEAP8Foo@@EAAXXZEA |
| 96 | ; CHECK: void (__cdecl Foo::*&&Q)(void) |