; 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 ?FunctionWithLocalType@@YA?A?@@XZ ; CHECK: __cdecl FunctionWithLocalType(void) ?ValueFromFunctionWithLocalType@@3ULocalType@?1??FunctionWithLocalType@@YA?A?@@XZ@A ; CHECK: struct ` __cdecl FunctionWithLocalType(void)'::`2'::LocalType ValueFromFunctionWithLocalType ??R@@QBE?A?@@XZ ; CHECK: __thiscall ::operator()(void) const ?ValueFromLambdaWithLocalType@@3ULocalType@?1???R@@QBE?A?@@XZ@A ; CHECK: struct ` __thiscall ::operator()(void) const'::`2'::LocalType ValueFromLambdaWithLocalType ?ValueFromTemplateFuncionWithLocalLambda@@3ULocalType@?2???R@?0???$TemplateFuncionWithLocalLambda@H@@YA?A?@@H@Z@QBE?A?3@XZ@A ; CHECK: struct ` __thiscall ` __cdecl TemplateFuncionWithLocalLambda(int)'::`1'::::operator()(void) const'::`3'::LocalType ValueFromTemplateFuncionWithLocalLambda ??$TemplateFuncionWithLocalLambda@H@@YA?A?@@H@Z ; CHECK: __cdecl TemplateFuncionWithLocalLambda(int) ??R@?0???$TemplateFuncionWithLocalLambda@H@@YA?A?@@H@Z@QBE?A?1@XZ ; CHECK: __thiscall ` __cdecl TemplateFuncionWithLocalLambda(int)'::`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 x> Zoo ??$unaligned_x@PFAH@@3PFAHA ; CHECK: int __unaligned *unaligned_x