summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r--lld/ELF/SymbolTable.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 6734e54a135..2b0bf42eda1 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -576,7 +576,10 @@ void SymbolTable<ELFT>::initDemangledSyms() {
for (Symbol *Sym : SymVector) {
SymbolBody *B = Sym->body();
- (*DemangledSyms)[demangle(B->getName())].push_back(B);
+ if (Optional<std::string> S = demangle(B->getName()))
+ (*DemangledSyms)[*S].push_back(B);
+ else
+ (*DemangledSyms)[B->getName()].push_back(B);
}
}
OpenPOWER on IntegriCloud