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.cpp7
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);
}
OpenPOWER on IntegriCloud