diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/AST/ItaniumMangle.cpp | 2 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/mangle.cpp | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/AST/ItaniumMangle.cpp b/clang/lib/AST/ItaniumMangle.cpp index 1d40d42c11d..bb4039e7f3a 100644 --- a/clang/lib/AST/ItaniumMangle.cpp +++ b/clang/lib/AST/ItaniumMangle.cpp @@ -2736,7 +2736,7 @@ void CXXNameMangler::mangleType(const UnaryTransformType *T) { } } - mangleType(T->getUnderlyingType()); + mangleType(T->getBaseType()); } void CXXNameMangler::mangleType(const AutoType *T) { diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp index 5012c3b3798..5d757102ed2 100644 --- a/clang/test/CodeGenCXX/mangle.cpp +++ b/clang/test/CodeGenCXX/mangle.cpp @@ -1101,3 +1101,13 @@ struct c { // CHECK-LABEL: @_ZN6test541cC2EPNS0_Ut0_E }; } + +namespace test55 { +enum E { R }; + +template <typename T> +void fn(T, __underlying_type(T)) {} + +template void fn<E>(E, __underlying_type(E)); +// CHECK-LABEL: @_ZN6test552fnINS_1EEEEvT_U3eutS2_ +} |

