Skip to content

Commit 07c22ed

Browse files
committed
fixup! adjust TypeSystemClang::DeclGetMangledName
1 parent 377ba31 commit 07c22ed

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9042,6 +9042,21 @@ ConstString TypeSystemClang::DeclGetName(void *opaque_decl) {
90429042
return ConstString();
90439043
}
90449044

9045+
static ConstString
9046+
ExtractMangledNameFromFunctionCallLabel(llvm::StringRef label) {
9047+
auto components_or_err = splitFunctionCallLabel(label);
9048+
if (!components_or_err) {
9049+
llvm::consumeError(components_or_err.takeError());
9050+
return {};
9051+
}
9052+
9053+
llvm::StringRef mangled = (*components_or_err)[0];
9054+
if (Mangled::IsMangledName(mangled))
9055+
return ConstString(mangled);
9056+
9057+
return {};
9058+
}
9059+
90459060
ConstString TypeSystemClang::DeclGetMangledName(void *opaque_decl) {
90469061
clang::NamedDecl *nd = llvm::dyn_cast_or_null<clang::NamedDecl>(
90479062
static_cast<clang::Decl *>(opaque_decl));
@@ -9053,14 +9068,12 @@ ConstString TypeSystemClang::DeclGetMangledName(void *opaque_decl) {
90539068
if (!mc || !mc->shouldMangleCXXName(nd))
90549069
return {};
90559070

9056-
// We have a LLDB FunctionCallLabel instead of an ordinary mangled name.
9071+
// We have an LLDB FunctionCallLabel instead of an ordinary mangled name.
90579072
// Extract the mangled name out of this label.
9058-
if (const auto *label = nd->getAttr<AsmLabelAttr>()) {
9059-
if (auto components_or_err = splitFunctionCallLabel(label->getLabel()))
9060-
return ConstString((*components_or_err)[0]);
9061-
else
9062-
llvm::consumeError(components_or_err.takeError());
9063-
}
9073+
if (const auto *label = nd->getAttr<AsmLabelAttr>())
9074+
if (ConstString mangled =
9075+
ExtractMangledNameFromFunctionCallLabel(label->getLabel()))
9076+
return mangled;
90649077

90659078
llvm::SmallVector<char, 1024> buf;
90669079
llvm::raw_svector_ostream llvm_ostrm(buf);

0 commit comments

Comments
 (0)