Index: ELF/SymbolTable.cpp =================================================================== --- ELF/SymbolTable.cpp +++ ELF/SymbolTable.cpp @@ -229,8 +229,10 @@ Obj->parse(DummyGroups); for (SymbolBody *Body : Obj->getNonLocalSymbols()) { Symbol *Sym = insert(Body); - if (!Sym->Body->isUndefined() && Body->isUndefined()) + if (!Sym->Body->isUndefined() && Body->isUndefined()) { + Sym->Body->setUsedInRegularObj(); continue; + } Sym->Body = Body; } } Index: ELF/Symbols.h =================================================================== --- ELF/Symbols.h +++ ELF/Symbols.h @@ -73,6 +73,7 @@ bool isShared() const { return SymbolKind == SharedKind; } bool isLocal() const { return IsLocal; } bool isUsedInRegularObj() const { return IsUsedInRegularObj; } + void setUsedInRegularObj() { IsUsedInRegularObj = true; } bool isPreemptible() const; template bool isGnuIfunc() const; @@ -317,7 +318,6 @@ std::unique_ptr getMember(); void setWeak() { IsWeak = true; } - void setUsedInRegularObj() { IsUsedInRegularObj = true; } private: ArchiveFile *File;