; These tests are based on clang/test/CodeGenCXX/mangle-ms-cxx11.cpp

; RUN: llvm-undname < %s | FileCheck %s

; CHECK-NOT: Invalid mangled name

?a@FTypeWithQuals@@3U?$S@$$A8@@BAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) const> FTypeWithQuals::a

?b@FTypeWithQuals@@3U?$S@$$A8@@CAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) volatile> FTypeWithQuals::b

?c@FTypeWithQuals@@3U?$S@$$A8@@IAAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) __restrict> FTypeWithQuals::c

?d@FTypeWithQuals@@3U?$S@$$A8@@GBAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) const &> FTypeWithQuals::d

?e@FTypeWithQuals@@3U?$S@$$A8@@GCAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) volatile &> FTypeWithQuals::e

?f@FTypeWithQuals@@3U?$S@$$A8@@IGAAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) __restrict &> FTypeWithQuals::f

?g@FTypeWithQuals@@3U?$S@$$A8@@HBAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) const &&> FTypeWithQuals::g

?h@FTypeWithQuals@@3U?$S@$$A8@@HCAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) volatile &&> FTypeWithQuals::h

?i@FTypeWithQuals@@3U?$S@$$A8@@IHAAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) __restrict &&> FTypeWithQuals::i

?j@FTypeWithQuals@@3U?$S@$$A6AHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void)> FTypeWithQuals::j

?k@FTypeWithQuals@@3U?$S@$$A8@@GAAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) &> FTypeWithQuals::k

?l@FTypeWithQuals@@3U?$S@$$A8@@HAAHXZ@1@A
; CHECK: struct FTypeWithQuals::S<int __cdecl(void) &&> FTypeWithQuals::l

?Char16Var@@3_SA
; CHECK: char16_t Char16Var

?Char32Var@@3_UA
; CHECK: char32_t Char32Var

?LRef@@YAXAAH@Z
; CHECK: void __cdecl LRef(int &)

?RRef@@YAH$$QAH@Z
; CHECK: int __cdecl RRef(int &&)

?Null@@YAX$$T@Z
; CHECK: void __cdecl Null(std::nullptr_t)

?fun@PR18022@@YA?AU<unnamed-type-a>@1@U21@0@Z
; CHECK: struct PR18022::<unnamed-type-a> __cdecl PR18022::fun(struct PR18022::<unnamed-type-a>, struct PR18022::<unnamed-type-a>)

; First, we have the static local variable of type "<lambda_1>" inside of "define_lambda".
; decltype(lambda), where lambda = [] { static int local=42; return 42; };
?lambda@?1??define_lambda@@YAHXZ@4V<lambda_1>@?0??1@YAHXZ@A
; CHECK: class `int __cdecl define_lambda(void)'::`1'::<lambda_1> `int __cdecl define_lambda(void)'::`2'::lambda

; Next, we have the "operator()" for "<lambda_1>" which is inside of "define_lambda".
??R<lambda_1>@?0??define_lambda@@YAHXZ@QBE@XZ
; CHECK: __thiscall `int __cdecl define_lambda(void)'::`1'::<lambda_1>::operator()(void) const

; Finally, we have the local which is inside of "<lambda_1>" which is inside of "define_lambda".
?local@?2???R<lambda_1>@?0??define_lambda@@YAHXZ@QBE@XZ@4HA
; CHECK: __thiscall `int __cdecl define_lambda(void)'::`1'::<lambda_1>::operator()(void) const

??$use_lambda_arg@V<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@@YAXV<lambda_1>@?0??call_with_lambda_arg1@@YAXXZ@@Z
; CHECK: void __cdecl use_lambda_arg<class `void __cdecl call_with_lambda_arg1(void)'::`1'::<lambda_1>>(class `void __cdecl call_with_lambda_arg1(void)'::`1'::<lambda_1>)

?foo@A@PR19361@@QIGAEXXZ
; CHECK: void __thiscall PR19361::A::foo(void) __restrict &

?foo@A@PR19361@@QIHAEXXZ
; CHECK: void __thiscall PR19361::A::foo(void) __restrict &&

??__K_deg@@YAHO@Z
; CHECK: int __cdecl operator ""_deg(long double)

??$templ_fun_with_pack@$S@@YAXXZ
; CHECK: void __cdecl templ_fun_with_pack<>(void)

??$templ_fun_with_ty_pack@$$$V@@YAXXZ
; CHECK: void __cdecl templ_fun_with_ty_pack<>(void)
??$templ_fun_with_ty_pack@$$V@@YAXXZ
; CHECK: void __cdecl templ_fun_with_ty_pack<>(void)

??$f@$$YAliasA@PR20047@@@PR20047@@YAXXZ
; CHECK: void __cdecl PR20047::f<PR20047::AliasA>(void)

?f@UnnamedType@@YAXAAU<unnamed-type-TD>@A@1@@Z
; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::A::<unnamed-type-TD> &)

?f@UnnamedType@@YAXPAW4<unnamed-type-e>@?$B@H@1@@Z
; CHECK: void __cdecl UnnamedType::f(enum UnnamedType::B<int>::<unnamed-type-e> *)

??$f@W4<unnamed-type-E>@?1??g@PR24651@@YAXXZ@@PR24651@@YAXW4<unnamed-type-E>@?1??g@0@YAXXZ@@Z
; We have a back-referencing problem here, we print `void __cdecl <unnamed-type-E>::g(void)`
; for the second occurrence of g.
; FIXME: void __cdecl PR24651::f<enum `void __cdecl PR24651::g(void)'::`2'::<unnamed-type-E>>(enum `void __cdecl PR24651::g(void)'::`2'::<unnamed-type-E>)

??$f@T<unnamed-type-$S1>@PR18204@@@PR18204@@YAHPAT<unnamed-type-$S1>@0@@Z
; FIXME: int __cdecl PR18204::f<union PR18204::<unnamed-type-$S1>>(union PR18204::<unnamed-type-$S1> *)

??R<lambda_0>@?0??PR26105@@YAHXZ@QBE@H@Z
; CHECK: __thiscall `int __cdecl PR26105(void)'::`1'::<lambda_0>::operator()(int) const

??R<lambda_1>@?0???R<lambda_0>@?0??PR26105@@YAHXZ@QBE@H@Z@QBE@H@Z
; CHECK: __thiscall `__thiscall `int __cdecl PR26105(void)'::`1'::<lambda_0>::operator()(int) const'::`1'::<lambda_1>::operator()(int) const

?unaligned_foo1@@YAPFAHXZ
; CHECK: int __unaligned * __cdecl unaligned_foo1(void)

?unaligned_foo2@@YAPFAPFAHXZ
; CHECK: int __unaligned *__unaligned * __cdecl unaligned_foo2(void)

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

?unaligned_foo4@@YAXPFAH@Z
; CHECK: void __cdecl unaligned_foo4(int __unaligned *)

?unaligned_foo5@@YAXPIFAH@Z
; CHECK: void __cdecl unaligned_foo5(int __unaligned *__restrict)

??$unaligned_foo6@PAH@@YAPAHPAH@Z
; CHECK: int * __cdecl unaligned_foo6<int *>(int *)

??$unaligned_foo6@PFAH@@YAPFAHPFAH@Z
; CHECK: int __unaligned * __cdecl unaligned_foo6<int __unaligned *>(int __unaligned *)

?unaligned_foo8@unaligned_foo8_S@@QFCEXXZ
; CHECK: void __thiscall unaligned_foo8_S::unaligned_foo8(void) volatile __unaligned

??R<lambda_1>@x@A@PR31197@@QBE@XZ
; CHECK: __thiscall PR31197::A::x::<lambda_1>::operator()(void) const

?white@?1???R<lambda_1>@x@A@PR31197@@QBE@XZ@4HA
; CHECK: int `__thiscall PR31197::A::x::<lambda_1>::operator()(void) const'::`2'::white

?f@@YAXW4<unnamed-enum-enumerator>@@@Z
; CHECK: void __cdecl f(enum <unnamed-enum-enumerator>)
