summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/SymbolTable.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 289ffbbfe8f..bfd70bca5ae 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -188,10 +188,11 @@ DefinedRegular<ELFT> *SymbolTable<ELFT>::addIgnored(StringRef Name,
// Rename SYM as __wrap_SYM. The original symbol is preserved as __real_SYM.
// Used to implement --wrap.
template <class ELFT> void SymbolTable<ELFT>::wrap(StringRef Name) {
- if (Symtab.count(Name) == 0)
+ SymbolBody *B = find(Name);
+ if (!B)
return;
StringSaver Saver(Alloc);
- Symbol *Sym = addUndefined(Name)->Backref;
+ Symbol *Sym = B->Backref;
Symbol *Real = addUndefined(Saver.save("__real_" + Name))->Backref;
Symbol *Wrap = addUndefined(Saver.save("__wrap_" + Name))->Backref;
Real->Body = Sym->Body;
OpenPOWER on IntegriCloud