diff options
author | Rui Ueyama <ruiu@google.com> | 2018-12-19 23:25:02 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2018-12-19 23:25:02 +0000 |
commit | d7ceb754c16e409f5729b2105d145068be1243f2 (patch) | |
tree | b0d73362960532ed6a456c65ad7bf3b1b82f9c90 /lld | |
parent | 97ea333d63661d82de12b26f337e3d9f95475bab (diff) |
Simplify. NFC.
Differential Revision: https://reviews.llvm.org/D55903
Diffstat (limited to 'lld')
-rw-r--r-- | lld/ELF/SymbolTable.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index e372461ee3c..8f320a5778b 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -494,18 +494,23 @@ void SymbolTable::addShared(StringRef Name, SharedFile<ELFT> &File, // An undefined symbol with non default visibility must be satisfied // in the same DSO. - if (WasInserted || - ((S->isUndefined() || S->isLazy()) && S->Visibility == STV_DEFAULT)) { + if (WasInserted) { + replaceSymbol<SharedSymbol>(S, File, Name, Sym.getBinding(), Sym.st_other, + Sym.getType(), Sym.st_value, Sym.st_size, + Alignment, VerdefIndex); + return; + } + + if ((S->isUndefined() || S->isLazy()) && S->Visibility == STV_DEFAULT) { uint8_t Binding = S->Binding; bool WasUndefined = S->isUndefined(); replaceSymbol<SharedSymbol>(S, File, Name, Sym.getBinding(), Sym.st_other, Sym.getType(), Sym.st_value, Sym.st_size, Alignment, VerdefIndex); - if (!WasInserted) { - S->Binding = Binding; - if (!S->isWeak() && !Config->GcSections && WasUndefined) - File.IsNeeded = true; - } + + S->Binding = Binding; + if (!S->isWeak() && !Config->GcSections && WasUndefined) + File.IsNeeded = true; } } |