summaryrefslogtreecommitdiff
path: root/lld/COFF/Symbols.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm-project@meinersbur.de>2025-01-03 10:22:51 +0100
committerMichael Kruse <llvm-project@meinersbur.de>2025-01-03 10:22:51 +0100
commit38500d63e14ce340236840f60d356cdefb56a52c (patch)
tree17edbec446ce9b50d2f215a483b83afb293a635d /lld/COFF/Symbols.cpp
parent1a3d5daaef7a6a63448a497da3eff7fc9e23df26 (diff)
parent27f30029741ecf023baece7b3dde1ff9011ffefc (diff)
Merge branch 'main' into users/meinersbur/flang_runtime_split-headersusers/meinersbur/flang_runtime_split-headers
Diffstat (limited to 'lld/COFF/Symbols.cpp')
-rw-r--r--lld/COFF/Symbols.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/lld/COFF/Symbols.cpp b/lld/COFF/Symbols.cpp
index 383f62afd8e1..148822fdb68f 100644
--- a/lld/COFF/Symbols.cpp
+++ b/lld/COFF/Symbols.cpp
@@ -28,8 +28,8 @@ static_assert(sizeof(SymbolUnion) <= 48,
"symbols should be optimized for memory usage");
// Returns a symbol name for an error message.
-static std::string maybeDemangleSymbol(const COFFLinkerContext &ctx,
- StringRef symName) {
+std::string maybeDemangleSymbol(const COFFLinkerContext &ctx,
+ StringRef symName) {
if (ctx.config.demangle) {
std::string prefix;
StringRef prefixless = symName;
@@ -60,6 +60,10 @@ coff::operator<<(const COFFSyncStream &s,
return s;
}
+const COFFSyncStream &coff::operator<<(const COFFSyncStream &s, Symbol *sym) {
+ return s << maybeDemangleSymbol(s.ctx, sym->getName());
+}
+
namespace coff {
void Symbol::computeName() {
@@ -162,10 +166,10 @@ bool Undefined::resolveWeakAlias() {
MemoryBufferRef LazyArchive::getMemberBuffer() {
Archive::Child c =
CHECK(sym.getMember(), "could not get the member for symbol " +
- toCOFFString(file->ctx, sym));
+ toCOFFString(file->symtab.ctx, sym));
return CHECK(c.getMemoryBufferRef(),
"could not get the buffer for the member defining symbol " +
- toCOFFString(file->ctx, sym));
+ toCOFFString(file->symtab.ctx, sym));
}
} // namespace coff
} // namespace lld