diff options
Diffstat (limited to 'test/Demangle/ms-template-callback.test')
-rw-r--r-- | test/Demangle/ms-template-callback.test | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/Demangle/ms-template-callback.test b/test/Demangle/ms-template-callback.test new file mode 100644 index 000000000000..88c4493d2bb6 --- /dev/null +++ b/test/Demangle/ms-template-callback.test @@ -0,0 +1,53 @@ +; These tests are based on clang/test/CodeGenCXX/mangle-ms-template-callback.cpp + +; RUN: llvm-undname < %s | FileCheck %s + +; CHECK-NOT: Invalid mangled name + +?callback_void@@3V?$C@$$A6AXXZ@@A +; CHECK: class C<void __cdecl(void)> callback_void + +?callback_void_volatile@@3V?$C@$$A6AXXZ@@C +; CHECK: class C<void __cdecl(void)> volatile callback_void_volatile + +?callback_int@@3V?$C@$$A6AHXZ@@A +; CHECK: C<int __cdecl(void)> callback_int + +?callback_Type@@3V?$C@$$A6A?AVType@@XZ@@A +; CHECK: C<class Type __cdecl(void)> callback_Type + +?callback_void_int@@3V?$C@$$A6AXH@Z@@A +; CHECK: C<void __cdecl(int)> callback_void_int + +?callback_int_int@@3V?$C@$$A6AHH@Z@@A +; CHECK: C<int __cdecl(int)> callback_int_int + +?callback_void_Type@@3V?$C@$$A6AXVType@@@Z@@A +; CHECK: C<void __cdecl(class Type)> callback_void_Type + +?foo@@YAXV?$C@$$A6AXXZ@@@Z +; CHECK: void __cdecl foo(class C<void __cdecl(void)>) + +?function@@YAXV?$C@$$A6AXXZ@@@Z +; CHECK: void __cdecl function(class C<void __cdecl(void)>) + +?function_pointer@@YAXV?$C@P6AXXZ@@@Z +; CHECK: void __cdecl function_pointer(class C<void (__cdecl *)(void)>) + +?member_pointer@@YAXV?$C@P8Z@@AEXXZ@@@Z +; CHECK: void __cdecl member_pointer(class C<void (__thiscall Z::*)(void)>) + +??$bar@P6AHH@Z@@YAXP6AHH@Z@Z +; CHECK: void __cdecl bar<int (__cdecl *)(int)>(int (__cdecl *)(int)) + +??$WrapFnPtr@$1?VoidFn@@YAXXZ@@YAXXZ +; CHECK: void __cdecl WrapFnPtr<&void __cdecl VoidFn(void)>(void) + +??$WrapFnRef@$1?VoidFn@@YAXXZ@@YAXXZ +; CHECK: void __cdecl WrapFnRef<&void __cdecl VoidFn(void)>(void) + +??$WrapFnPtr@$1?VoidStaticMethod@Thing@@SAXXZ@@YAXXZ +; CHECK: void __cdecl WrapFnPtr<&static void __cdecl Thing::VoidStaticMethod(void)>(void) + +??$WrapFnRef@$1?VoidStaticMethod@Thing@@SAXXZ@@YAXXZ +; CHECK: void __cdecl WrapFnRef<&static void __cdecl Thing::VoidStaticMethod(void)>(void) |