summaryrefslogtreecommitdiff
path: root/lld/COFF/Symbols.cpp
diff options
context:
space:
mode:
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