summaryrefslogtreecommitdiffstats
path: root/lld/ELF/MarkLive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/MarkLive.cpp')
-rw-r--r--lld/ELF/MarkLive.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/ELF/MarkLive.cpp b/lld/ELF/MarkLive.cpp
index 4d0b08dc76d..ade0dceeb2c 100644
--- a/lld/ELF/MarkLive.cpp
+++ b/lld/ELF/MarkLive.cpp
@@ -99,12 +99,13 @@ template <class ELFT> void elf::markLive(SymbolTable<ELFT> *Symtab) {
auto MarkSymbol = [&](SymbolBody *Sym) {
if (Sym)
- if (auto *D = dyn_cast<DefinedRegular<ELFT>>(&Sym->repl()))
+ if (auto *D = dyn_cast<DefinedRegular<ELFT>>(Sym))
Enqueue(D->Section);
};
// Add GC root symbols.
- MarkSymbol(Config->EntrySym);
+ if (Config->EntrySym)
+ MarkSymbol(Config->EntrySym->Body);
MarkSymbol(Symtab->find(Config->Init));
MarkSymbol(Symtab->find(Config->Fini));
for (StringRef S : Config->Undefined)
OpenPOWER on IntegriCloud