diff options
| author | Rui Ueyama <ruiu@google.com> | 2018-12-20 22:54:41 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2018-12-20 22:54:41 +0000 |
| commit | fb81437638d220a7112568d27b3b72b9542b90e6 (patch) | |
| tree | 1c103d4c01fcf530b759c0323ccd4c70b6122df5 /lld/ELF/SymbolTable.cpp | |
| parent | 51fe635f81aea34901cc329e1a375703c980d7ef (diff) | |
| download | bcm5719-llvm-fb81437638d220a7112568d27b3b72b9542b90e6.tar.gz bcm5719-llvm-fb81437638d220a7112568d27b3b72b9542b90e6.zip | |
Simplify. NFC.
llvm-svn: 349850
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
| -rw-r--r-- | lld/ELF/SymbolTable.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index 5545617487e..2e8759b8630 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -494,21 +494,16 @@ void SymbolTable::addShared(StringRef Name, SharedFile<ELFT> &File, // An undefined symbol with non default visibility must be satisfied // in the same DSO. - if (WasInserted) { - replaceSymbol<SharedSymbol>(S, File, Name, Sym.getBinding(), Sym.st_other, + auto Replace = [&](uint8_t Binding) { + replaceSymbol<SharedSymbol>(S, File, Name, Binding, 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; - replaceSymbol<SharedSymbol>(S, File, Name, Sym.getBinding(), Sym.st_other, - Sym.getType(), Sym.st_value, Sym.st_size, - Alignment, VerdefIndex); - - S->Binding = Binding; - } + if (WasInserted) + Replace(Sym.getBinding()); + else if (S->Visibility == STV_DEFAULT && (S->isUndefined() || S->isLazy())) + Replace(S->Binding); } Symbol *SymbolTable::addBitcode(StringRef Name, uint8_t Binding, |

