diff --git a/include/swift/Remote/MetadataReader.h b/include/swift/Remote/MetadataReader.h index 8ea3580a5e765..5e13e3328791b 100644 --- a/include/swift/Remote/MetadataReader.h +++ b/include/swift/Remote/MetadataReader.h @@ -2674,6 +2674,18 @@ class MetadataReader { return nullptr; } + // Check if the Reader can provide a symbol for this descriptor, and if it + // can, use that instead. + if (auto remoteAbsolutePointer = + Reader->resolvePointerAsSymbol(descriptor.getRemoteAddress())) { + auto symbol = remoteAbsolutePointer->getSymbol(); + if (!symbol.empty()) { + if (auto demangledSymbol = buildContextManglingForSymbol(symbol, dem)) { + return demangledSymbol; + } + } + } + // Read the parent descriptor. auto parentDescriptorResult = readParentContextDescriptor(descriptor);