|  | ; RUN: llvm-undname < %s | FileCheck %s | 
|  |  | 
|  | ; CHECK-NOT: Invalid mangled name | 
|  |  | 
|  | ??$?BH@TemplateOps@@QAEHXZ | 
|  | ; CHECK: int __thiscall TemplateOps::operator<int> int(void) | 
|  |  | 
|  | ??BOps@@QAEHXZ | 
|  | ; CHECK: int __thiscall Ops::operator int(void) | 
|  |  | 
|  | ??BConstOps@@QAE?BHXZ | 
|  | ; CHECK: int const __thiscall ConstOps::operator int const(void) | 
|  |  | 
|  | ??BVolatileOps@@QAE?CHXZ | 
|  | ; CHECK: int volatile __thiscall VolatileOps::operator int volatile(void) | 
|  |  | 
|  | ??BConstVolatileOps@@QAE?DHXZ | 
|  | ; CHECK: int const volatile __thiscall ConstVolatileOps::operator int const volatile(void) | 
|  |  | 
|  | ??$?BN@TemplateOps@@QAENXZ | 
|  | ; CHECK: double __thiscall TemplateOps::operator<double> double(void) | 
|  |  | 
|  | ??BOps@@QAENXZ | 
|  | ; CHECK: double __thiscall Ops::operator double(void) | 
|  |  | 
|  | ??BConstOps@@QAE?BNXZ | 
|  | ; CHECK: double const __thiscall ConstOps::operator double const(void) | 
|  |  | 
|  | ??BVolatileOps@@QAE?CNXZ | 
|  | ; CHECK: double volatile __thiscall VolatileOps::operator double volatile(void) | 
|  |  | 
|  | ??BConstVolatileOps@@QAE?DNXZ | 
|  | ; CHECK: double const volatile __thiscall ConstVolatileOps::operator double const volatile(void) | 
|  |  | 
|  | ??BCompoundTypeOps@@QAEPAHXZ | 
|  | ; CHECK: nt * __thiscall CompoundTypeOps::operator int *(void) | 
|  |  | 
|  | ??BCompoundTypeOps@@QAEPBHXZ | 
|  | ; CHECK: int const * __thiscall CompoundTypeOps::operator int const *(void) | 
|  |  | 
|  | ??BCompoundTypeOps@@QAE$$QAHXZ | 
|  | ; CHECK: int && __thiscall CompoundTypeOps::operator int &&(void) | 
|  |  | 
|  | ??BCompoundTypeOps@@QAE?AU?$Foo@H@@XZ | 
|  | ; CHECK: struct Foo<int> __thiscall CompoundTypeOps::operator struct Foo<int>(void) | 
|  |  | 
|  | ??$?BH@CompoundTypeOps@@QAE?AU?$Bar@U?$Foo@H@@@@XZ | 
|  | ; CHECK: struct Bar<struct Foo<int>> __thiscall CompoundTypeOps::operator<int> struct Bar<struct Foo<int>>(void) | 
|  |  | 
|  | ??$?BPAH@TemplateOps@@QAEPAHXZ | 
|  | ; CHECK: int * __thiscall TemplateOps::operator<int *> int *(void) |