1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/test/Demangle/ms-template-callback.test
Nico Weber 0ad4ee4225 [MS Demangler] Print public:, protected:, private: if set in FunctionClass or a variable's StorageClass.
undname prints them, and the information is in the decorated name, so we probably shouldn't lose it when undecorating.

I spot-checked a few of the funnier-looking outputs, and undname has the same output.

Differential Revision: https://reviews.llvm.org/D54396

llvm-svn: 346791
2018-11-13 20:18:26 +00:00

54 lines
1.8 KiB
Plaintext

; 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<&public: static void __cdecl Thing::VoidStaticMethod(void)>(void)
??$WrapFnRef@$1?VoidStaticMethod@Thing@@SAXXZ@@YAXXZ
; CHECK: void __cdecl WrapFnRef<&public: static void __cdecl Thing::VoidStaticMethod(void)>(void)