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

; CHECK-NOT: Invalid mangled name

??$x@X@@3HA
; CHECK: int x<void>

?FunctionWithLocalType@@YA?A?<auto>@@XZ
; CHECK: <auto> __cdecl FunctionWithLocalType(void)

?ValueFromFunctionWithLocalType@@3ULocalType@?1??FunctionWithLocalType@@YA?A?<auto>@@XZ@A
; CHECK: struct `<auto> __cdecl FunctionWithLocalType(void)'::`2'::LocalType ValueFromFunctionWithLocalType

??R<lambda_0>@@QBE?A?<auto>@@XZ
; CHECK: <auto> __thiscall <lambda_0>::operator()(void) const

?ValueFromLambdaWithLocalType@@3ULocalType@?1???R<lambda_0>@@QBE?A?<auto>@@XZ@A
; CHECK: struct `public: <auto> __thiscall <lambda_0>::operator()(void) const'::`2'::LocalType ValueFromLambdaWithLocalType

?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R<lambda_1>@?0???$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?3@XZ@A
; CHECK: struct `public: <auto> __thiscall `<auto> __cdecl TemplateFuncionWithLocalLambda<int>(int)'::`1'::<lambda_1>::operator()(void) const'::`3'::LocalType ValueFromTemplateFuncionWithLocalLambda

??$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z
; CHECK: <auto> __cdecl TemplateFuncionWithLocalLambda<int>(int)

??R<lambda_1>@?0???$TemplateFuncionWithLocalLambda@H@@YA?A?<auto>@@H@Z@QBE?A?1@XZ
; CHECK: <auto> __thiscall `<auto> __cdecl TemplateFuncionWithLocalLambda<int>(int)'::`1'::<lambda_1>::operator()(void) const

??$WithPMD@$GA@A@?0@@3HA
; CHECK: int WithPMD<{0, 0, -1}>

?Zoo@@3U?$Foo@$1??$x@H@@3HA$1?1@3HA@@A
; CHECK: struct Foo<&int x<int>, &int x<int>> Zoo

??$unaligned_x@PFAH@@3PFAHA
; CHECK: int __unaligned *unaligned_x<int __unaligned *>
