Merge pull request #85911 from augusto2112/factor-context-descriptor-symbol

[RemoteInspection] Factor out buildContextDescriptorManglingForSymbol
This commit is contained in:
Augusto Noronha
2025-12-09 11:24:53 -08:00
committed by GitHub

View File

@@ -2643,6 +2643,26 @@ private:
return resultAddress;
}
Demangle::NodePointer
buildContextDescriptorManglingForSymbol(llvm::StringRef symbol,
Demangler &dem) {
if (auto demangledSymbol = buildContextManglingForSymbol(symbol, dem)) {
// Look through Type nodes since we're building up a mangling here.
if (demangledSymbol->getKind() == Demangle::Node::Kind::Type) {
demangledSymbol = demangledSymbol->getChild(0);
}
return demangledSymbol;
}
return nullptr;
}
Demangle::NodePointer
buildContextDescriptorManglingForSymbol(const std::string &symbol,
Demangler &dem) {
return buildContextDescriptorManglingForSymbol(dem.copyString(symbol), dem);
}
Demangle::NodePointer
buildContextDescriptorMangling(const ParentContextDescriptorRef &descriptor,
Demangler &dem, int recursion_limit) {
@@ -2656,15 +2676,7 @@ private:
// Try to demangle the symbol name to figure out what context it would
// point to.
auto demangledSymbol = buildContextManglingForSymbol(descriptor.getSymbol(),
dem);
if (!demangledSymbol)
return nullptr;
// Look through Type notes since we're building up a mangling here.
if (demangledSymbol->getKind() == Demangle::Node::Kind::Type){
demangledSymbol = demangledSymbol->getChild(0);
}
return demangledSymbol;
return buildContextDescriptorManglingForSymbol(descriptor.getSymbol(), dem);
}
Demangle::NodePointer
@@ -2680,7 +2692,7 @@ private:
Reader->resolvePointerAsSymbol(descriptor.getRemoteAddress())) {
auto symbol = remoteAbsolutePointer->getSymbol();
if (!symbol.empty()) {
if (auto demangledSymbol = buildContextManglingForSymbol(symbol, dem)) {
if (auto demangledSymbol = buildContextDescriptorManglingForSymbol(symbol, dem)) {
return demangledSymbol;
}
}