; These tests are based on clang/test/CodeGenCXX/mangle-ms.cpp
; RUN: llvm-undname < %s | FileCheck %s

; CHECK-NOT: Invalid mangled name

?a@@3HA
; CHECK: int a

?b@N@@3HA
; CHECK: int N::b

?anonymous@?A@N@@3HA
; CHECK: int N::`anonymous namespace'::anonymous

?$RT1@NeedsReferenceTemporary@@3ABHB
; CHECK: int const &NeedsReferenceTemporary::$RT1
?$RT1@NeedsReferenceTemporary@@3AEBHEB
; CHECK: int const &NeedsReferenceTemporary::$RT1

?_c@@YAHXZ
; CHECK: int __cdecl _c(void)

?d@foo@@0FB
; CHECK: static short const foo::d

?e@foo@@1JC
; CHECK: static long volatile foo::e

?f@foo@@2DD
; CHECK: static char const volatile foo::f

??0foo@@QAE@XZ
; CHECK: __thiscall foo::foo(void)

??0foo@@QEAA@XZ
; CHECK: __cdecl foo::foo(void)

??1foo@@QAE@XZ
; CHECK: __thiscall foo::~foo(void)

??1foo@@QEAA@XZ
; CHECK: __cdecl foo::~foo(void)

??0foo@@QAE@H@Z
; CHECK: __thiscall foo::foo(int)

??0foo@@QEAA@H@Z
; CHECK: __cdecl foo::foo(int)

??0foo@@QAE@PAD@Z
; CHECK: __thiscall foo::foo(char *)

??0foo@@QEAA@PEAD@Z
; CHECK: __cdecl foo::foo(char *)

?bar@@YA?AVfoo@@XZ
; CHECK: class foo __cdecl bar(void)

?bar@@YA?AVfoo@@XZ
; CHECK: class foo __cdecl bar(void)

??Hfoo@@QAEHH@Z
; CHECK: int __thiscall foo::operator+(int)

??Hfoo@@QEAAHH@Z
; CHECK: int __cdecl foo::operator+(int)

??$?HH@S@@QEAAAEANH@Z
; CHECK: double & __cdecl S::operator+<int>(int)

?static_method@foo@@SAPAV1@XZ
; CHECK: static class foo * __cdecl foo::static_method(void)

?static_method@foo@@SAPEAV1@XZ
; CHECK: static class foo * __cdecl foo::static_method(void)

?g@bar@@2HA
; CHECK: static int bar::g

; undname returns `int *h1`, but it is a bug in their demangler.  Their mangler
; correctly mangles `int *h1` as ?h1@3PAHA and `int * const h1` as ?h1@3QAHA
?h1@@3QAHA
; CHECK: int *const h1

?h2@@3QBHB
; CHECK: int const *const h2

?h3@@3QIAHIA
; CHECK: int *const __restrict h3

?h3@@3QEIAHEIA
; CHECK: int *const __restrict h3

?i@@3PAY0BE@HA
; CHECK: int (*i)[20]

?FunArr@@3PAY0BE@P6AHHH@ZA
; CHECK: int (__cdecl *(*FunArr)[20])(int, int)

?j@@3P6GHCE@ZA
; CHECK: int (__stdcall *j)(signed char, unsigned char)

?funptr@@YAP6AHXZXZ
; CHECK: int (__cdecl * __cdecl funptr(void))(void)

?m@@3PRfoo@@DR1@
; CHECK: char const foo::*m

?m@@3PERfoo@@DER1@
; CHECK: char const foo::*m

?k@@3PTfoo@@DT1@
; CHECK: char const volatile foo::*k

?k@@3PETfoo@@DET1@
; CHECK: char const volatile foo::*k

?l@@3P8foo@@AEHH@ZQ1@
; CHECK: int (__thiscall foo::*l)(int)

?g_cInt@@3HB
; CHECK: int const g_cInt

?g_vInt@@3HC
; CHECK: int volatile g_vInt

?g_cvInt@@3HD
; CHECK: int const volatile g_cvInt

?beta@@YI_N_J_W@Z
; CHECK: bool __fastcall beta(__int64, wchar_t)

?beta@@YA_N_J_W@Z
; CHECK: bool __cdecl beta(__int64, wchar_t)

?alpha@@YGXMN@Z
; CHECK: void __stdcall alpha(float, double)

?alpha@@YAXMN@Z
; CHECK: void __cdecl alpha(float, double)

?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z
; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux)

?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z
; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux)

?delta@@YAXQAHABJ@Z
; CHECK: void __cdecl delta(int *const, long const &)

?delta@@YAXQEAHAEBJ@Z
; CHECK: void __cdecl delta(int *const, long const &)

?epsilon@@YAXQAY19BE@H@Z
; CHECK: void __cdecl epsilon(int (*const)[10][20])

?epsilon@@YAXQEAY19BE@H@Z
; CHECK: void __cdecl epsilon(int (*const)[10][20])

?zeta@@YAXP6AHHH@Z@Z
; CHECK: void __cdecl zeta(int (__cdecl *)(int, int))

?zeta@@YAXP6AHHH@Z@Z
; CHECK: void __cdecl zeta(int (__cdecl *)(int, int))

; FIXME: We don't support blocks yet.

; ?eta@@YAXP_EAHHH@Z@Z
; FIXME: void eta(int (^)(int, int))
; ?theta@@YAXP_EAHHH@Z@Z
; FIXME: void theta(int(int,int)^ block)

??2@YAPAXI@Z
; CHECK: void * __cdecl operator new(unsigned int)

??3@YAXPAX@Z
; CHECK: void __cdecl operator delete(void *)

??_U@YAPAXI@Z
; CHECK: void * __cdecl operator new[](unsigned int)

??_V@YAXPAX@Z
; CHECK: void __cdecl operator delete[](void *)

?color1@@3PANA
; CHECK: double *color1

?color2@@3QBNB
; CHECK: double const *const color2

; undname prints `double const (* color3)[3]`, but this is a bug in undname.
?color3@@3QAY02$$CBNA
; CHECK: double const (*const color3)[3]

; undname prints `double const (* color4)[3]`, but this is a bug in undname.
?color4@@3QAY02$$CBNA
; CHECK: double const (*const color4)[3]

?memptr1@@3RESB@@HES1@
; CHECK: int volatile B::*volatile memptr1

?memptr2@@3PESB@@HES1@
; CHECK: int volatile B::*memptr2

?memptr3@@3REQB@@HEQ1@
; CHECK: int B::*volatile memptr3

?funmemptr1@@3RESB@@R6AHXZES1@
; CHECK: int (__cdecl *volatile B::*volatile funmemptr1)(void)

?funmemptr2@@3PESB@@R6AHXZES1@
; CHECK: int (__cdecl *volatile B::*funmemptr2)(void)

?funmemptr3@@3REQB@@P6AHXZEQ1@
; CHECK: int (__cdecl *B::*volatile funmemptr3)(void)

?memptrtofun1@@3R8B@@EAAXXZEQ1@
; CHECK: void (__cdecl B::*volatile memptrtofun1)(void)

?memptrtofun2@@3P8B@@EAAXXZEQ1@
; CHECK: void (__cdecl B::*memptrtofun2)(void)

?memptrtofun3@@3P8B@@EAAXXZEQ1@
; CHECK: void (__cdecl B::*memptrtofun3)(void)

?memptrtofun4@@3R8B@@EAAHXZEQ1@
; CHECK: int (__cdecl B::*volatile memptrtofun4)(void)

?memptrtofun5@@3P8B@@EAA?CHXZEQ1@
; CHECK: int volatile (__cdecl B::*memptrtofun5)(void)

?memptrtofun6@@3P8B@@EAA?BHXZEQ1@
; CHECK: int const (__cdecl B::*memptrtofun6)(void)

?memptrtofun7@@3R8B@@EAAP6AHXZXZEQ1@
; CHECK: int (__cdecl * (__cdecl B::*volatile memptrtofun7)(void))(void)

?memptrtofun8@@3P8B@@EAAR6AHXZXZEQ1@
; CHECK: int (__cdecl *volatile (__cdecl B::*memptrtofun8)(void))(void)

?memptrtofun9@@3P8B@@EAAQ6AHXZXZEQ1@
; CHECK: int (__cdecl *const (__cdecl B::*memptrtofun9)(void))(void)


?fooE@@YA?AW4E@@XZ
; CHECK: enum E __cdecl fooE(void)

?fooE@@YA?AW4E@@XZ
; CHECK: enum E __cdecl fooE(void)

?fooX@@YA?AVX@@XZ
; CHECK: class X __cdecl fooX(void)

?fooX@@YA?AVX@@XZ
; CHECK: class X __cdecl fooX(void)

?s0@PR13182@@3PADA
; CHECK: char *PR13182::s0

?s1@PR13182@@3PADA
; CHECK: char *PR13182::s1

?s2@PR13182@@3QBDB
; CHECK: char const *const PR13182::s2

?s3@PR13182@@3QBDB
; CHECK: char const *const PR13182::s3

?s4@PR13182@@3RCDC
; CHECK: char volatile *volatile PR13182::s4

?s5@PR13182@@3SDDD
; CHECK: char const volatile *const volatile PR13182::s5

; undname adds an extra const in here, but it seems like their bug.
?s6@PR13182@@3PBQBDB
; CHECK: char const *const *PR13182::s6

?local@?1??extern_c_func@@9@4HA
; CHECK: int `extern "C" extern_c_func'::`2'::local

?local@?1??extern_c_func@@9@4HA
; CHECK: int `extern "C" extern_c_func'::`2'::local

?v@?1??f@@YAHXZ@4U<unnamed-type-v>@?1??1@YAHXZ@A
; CHECK: struct `int __cdecl f(void)'::`2'::<unnamed-type-v> `int __cdecl f(void)'::`2'::v

?v@?1???$f@H@@YAHXZ@4U<unnamed-type-v>@?1???$f@H@@YAHXZ@A
; CHECK: struct `int __cdecl f<int>(void)'::`2'::<unnamed-type-v> `int __cdecl f<int>(void)'::`2'::v

??2OverloadedNewDelete@@SAPAXI@Z
; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned int)


??_UOverloadedNewDelete@@SAPAXI@Z
; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned int)

??3OverloadedNewDelete@@SAXPAX@Z
; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *)


??_VOverloadedNewDelete@@SAXPAX@Z
; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *)

??HOverloadedNewDelete@@QAEHH@Z
; CHECK: int __thiscall OverloadedNewDelete::operator+(int)

??2OverloadedNewDelete@@SAPEAX_K@Z
; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned __int64)

??_UOverloadedNewDelete@@SAPEAX_K@Z
; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned __int64)

??3OverloadedNewDelete@@SAXPEAX@Z
; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *)


??_VOverloadedNewDelete@@SAXPEAX@Z
; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *)

??HOverloadedNewDelete@@QEAAHH@Z
; CHECK: int __cdecl OverloadedNewDelete::operator+(int)


??2TypedefNewDelete@@SAPAXI@Z
; CHECK: static void * __cdecl TypedefNewDelete::operator new(unsigned int)


??_UTypedefNewDelete@@SAPAXI@Z
; CHECK: static void * __cdecl TypedefNewDelete::operator new[](unsigned int)

??3TypedefNewDelete@@SAXPAX@Z
; CHECK: static void __cdecl TypedefNewDelete::operator delete(void *)

??_VTypedefNewDelete@@SAXPAX@Z
; CHECK: static void __cdecl TypedefNewDelete::operator delete[](void *)

?vector_func@@YQXXZ
; CHECK: void __vectorcall vector_func(void)

??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ
; CHECK: void __cdecl fn_tmpl<&void __cdecl extern_c_func(void)>(void)

?overloaded_fn@@$$J0YAXXZ
; CHECK: extern "C" void __cdecl overloaded_fn(void)

?f@UnnamedType@@YAXQAPAU<unnamed-type-T1>@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::<unnamed-type-T1> **const)

?f@UnnamedType@@YAXUT2@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2)

?f@UnnamedType@@YAXPAUT4@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4 *)

?f@UnnamedType@@YAXUT4@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4)

?f@UnnamedType@@YAXUT5@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5)

?f@UnnamedType@@YAXUT2@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2)

?f@UnnamedType@@YAXUT4@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4)

?f@UnnamedType@@YAXUT5@S@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5)


; ?foo@PassObjectSize@@YAHQAHW4__pass_object_size0@__clang@@@Z
; FIXME: int foo(int *const i __attribute__((pass_object_size(0))));
; ?bar@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@@Z
; FIXME: int bar(int *const i __attribute__((pass_object_size(1))));
; ?qux@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@0W4__pass_object_size0@3@@Z
; FIXME: int qux(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(0))));
; ?zot@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@01@Z
; FIXME: int zot(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(1))));



?f@Atomic@@YAXU?$_Atomic@H@__clang@@@Z
; CHECK: void __cdecl Atomic::f(struct __clang::_Atomic<int>)

?f@Complex@@YAXU?$_Complex@H@__clang@@@Z
; CHECK: void __cdecl Complex::f(struct __clang::_Complex<int>)

?f@Float16@@YAXU_Float16@__clang@@@Z
; CHECK: void __cdecl Float16::f(struct __clang::_Float16)


??0?$L@H@NS@@QEAA@XZ
; CHECK: __cdecl NS::L<int>::L<int>(void)

??0Bar@Foo@@QEAA@XZ
; CHECK: __cdecl Foo::Bar::Bar(void)

??0?$L@V?$H@PAH@PR26029@@@PR26029@@QAE@XZ
; CHECK: __thiscall PR26029::L<class PR26029::H<int *>>::L<class PR26029::H<int *>>(void)

??$emplace_back@ABH@?$vector@HV?$allocator@H@std@@@std@@QAE?A?<decltype-auto>@@ABH@Z
; CHECK: <decltype-auto> __thiscall std::vector<int, class std::allocator<int>>::emplace_back<int const &>(int const &)


?pub_foo@S@@QAEXXZ
; CHECK: public: void __thiscall S::pub_foo(void)

?pub_stat_foo@S@@SAXXZ
; CHECK: public: static void __cdecl S::pub_stat_foo(void)

?pub_virt_foo@S@@UAEXXZ
; CHECK: public: virtual void __thiscall S::pub_virt_foo(void)

?prot_foo@S@@IAEXXZ
; CHECK: protected: void __thiscall S::prot_foo(void)

?prot_stat_foo@S@@KAXXZ
; CHECK: protected: static void __cdecl S::prot_stat_foo(void)

?prot_virt_foo@S@@MAEXXZ
; CHECK: protected: virtual void __thiscall S::prot_virt_foo(void)

?priv_foo@S@@AAEXXZ
; CHECK: private: void __thiscall S::priv_foo(void)

?priv_stat_foo@S@@CAXXZ
; CHECK: private: static void __cdecl S::priv_stat_foo(void)

?priv_virt_foo@S@@EAEXXZ
; CHECK: private: virtual void __thiscall S::priv_virt_foo(void)
