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.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 25ba584d45b..088bf5bca71 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -222,6 +222,12 @@ template <class ELFT> void SymbolTable::resolve(SymbolBody *New) {
if (Lazy *L = dyn_cast<Lazy>(Existing)) {
if (New->isUndefined()) {
+ if (New->isWeak()) {
+ // See the explanation in SymbolTable::addLazy
+ L->setUsedInRegularObj();
+ L->setWeak();
+ return;
+ }
addMemberFile(L);
return;
}
OpenPOWER on IntegriCloud