1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Demangle/ms-cxx14.test
Zachary Turner e121f14e93 Add support for various C++14 demanglings.
Mostly this includes <auto> and <decltype-auto> return values.
Additionally, this fixes a fairly obscure back-referencing bug
that was encountered in one of the C++14 tests, which is that
if you have something like Foo<&bar, &bar> then the `bar`
forms a backreference.

llvm-svn: 340896
2018-08-29 04:12:44 +00:00

38 lines
1.6 KiB
Plaintext

; 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 `<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 `<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 *>