summaryrefslogtreecommitdiff
path: root/libcxxabi/test
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2023-03-07 13:18:07 +0000
committerMichael Buch <michaelbuch12@gmail.com>2023-03-19 11:03:54 +0000
commit4601bcdb7ed3168053aa6d70abedb17c3fffa0d2 (patch)
tree94fef7286b5d203ac5cab90db15e1df5a564d869 /libcxxabi/test
parent50b58e89a122fdc20616ad6d6dd3a802206454d2 (diff)
downloadllvm-4601bcdb7ed3168053aa6d70abedb17c3fffa0d2.tar.gz
[libcxxabi][Demangle] Don't drop ctor/dtor name for abi-tagged structures
Before this patch we would demangle abi-tagged structures as follows: ``` $ c++filt -n _ZN1SB5OuterC2Ev S[abi:Outer]:() $ c++filt -n _ZN1SB5OuterD2Ev S[abi:Outer]::~() ``` This is because `Node::getBaseName` was unimplemented for the `AbiTagAttr` node, which meant that when we tried printing `CtorDtorName` where its `Basename` `Node` was an `AbiTagAttr`, we'd drop the name. Addresses https://github.com/llvm/llvm-project/issues/61213 Differential Revision: https://reviews.llvm.org/D145492
Diffstat (limited to 'libcxxabi/test')
-rw-r--r--libcxxabi/test/test_demangle.pass.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/libcxxabi/test/test_demangle.pass.cpp b/libcxxabi/test/test_demangle.pass.cpp
index 0607c4ef7efa..00592eede9a1 100644
--- a/libcxxabi/test/test_demangle.pass.cpp
+++ b/libcxxabi/test/test_demangle.pass.cpp
@@ -30112,6 +30112,8 @@ const char* cases[][2] =
"::basic_ostream()"},
{"_ZNSsC1Ev", "std::basic_string<char, std::char_traits<char>,"
" std::allocator<char>>::basic_string()"},
+ {"_ZN1SB8ctor_tagC2Ev", "S[abi:ctor_tag]::S()"},
+ {"_ZN1SB8ctor_tagD2Ev", "S[abi:ctor_tag]::~S()"},
};
const unsigned N = sizeof(cases) / sizeof(cases[0]);