; 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)