diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -537,6 +537,8 @@ template void match(Fn F) const { F(Base, Tag); } + StringView getBaseName() const override { return Base->getBaseName(); } + void printLeft(OutputBuffer &OB) const override { Base->printLeft(OB); OB += "[abi:"; diff --git a/llvm/test/tools/llvm-cxxfilt/abitag.test b/llvm/test/tools/llvm-cxxfilt/abitag.test --- a/llvm/test/tools/llvm-cxxfilt/abitag.test +++ b/llvm/test/tools/llvm-cxxfilt/abitag.test @@ -1,6 +1,7 @@ -RUN: llvm-cxxfilt -n _Z14returns_stringB5cxx11v _Z6globalB5cxx11 _Z6globalB12a_longer_tag | FileCheck %s +RUN: llvm-cxxfilt -n _Z14returns_stringB5cxx11v _Z6globalB5cxx11 _Z6globalB12a_longer_tag _ZN6globalB3TagC2Ev _ZN6globalB3TagD2Ev | FileCheck %s CHECK: returns_string[abi:cxx11]() CHECK-NEXT: global[abi:cxx11] CHECK-NEXT: global[abi:a_longer_tag] - +CHECK-NEXT: global[abi:Tag]::global() +CHECK-NEXT: global[abi:Tag]::~global()