llvm-mirror/test/Demangle/ms-cxx17-noexcept.test
Zachary Turner 3475d3dfe8 [llvm-undname] Add support for demangling msvc's noexcept types.
Starting in C++17, MSVC introduced a new mangling for function
parameters that are themselves noexcept functions.  This patch
makes llvm-undname properly demangle them.

Patch by Zachary Henkel
Differential Revision: https://reviews.llvm.org/D55769

llvm-svn: 350656
2019-01-08 21:05:51 +00:00

26 lines
674 B
Plaintext

; RUN: llvm-undname < %s | FileCheck %s
; CHECK-NOT: Invalid mangled name
?nochange@@YAXXZ
; CHECK: void __cdecl nochange(void)
?a@@YAXP6AHXZ@Z
; CHECK: void __cdecl a(int (__cdecl *)(void))
?a@@YAXP6AHX_E@Z
; CHECK: void __cdecl a(int (__cdecl *)(void) noexcept)
?b@@YAXP6AHXZ@Z
; CHECK: void __cdecl b(int (__cdecl *)(void))
?c@@YAXP6AHXZ@Z
; CHECK: void __cdecl c(int (__cdecl *)(void))
?c@@YAXP6AHX_E@Z
; CHECK: void __cdecl c(int (__cdecl *)(void) noexcept)
?ee@?$e@$$A6AXXZ@@EEAAXXZ
; CHECK: private: virtual void __cdecl e<void __cdecl(void)>::ee(void)
?ee@?$e@$$A6AXX_E@@EEAAXXZ
; CHECK: private: virtual void __cdecl e<void __cdecl(void) noexcept>::ee(void)