diff options
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
| -rw-r--r-- | lld/ELF/SymbolTable.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index 01d43d28972..c270f85c5e3 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -568,9 +568,12 @@ void SymbolTable::addLazyObject(StringRef Name, LazyObjFile &Obj) { return; // See comment for addLazyArchive above. - if (S->isWeak()) + if (S->isWeak()) { replaceSymbol<LazyObject>(S, Obj, Name, S->Type); - else if (InputFile *F = Obj.fetch()) + S->Binding = STB_WEAK; + return; + } + if (InputFile *F = Obj.fetch()) addFile<ELFT>(F); } |

