From d668873bfe487c8eaec96db927e28de40cf4db5e Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Thu, 16 May 2019 03:54:41 +0000 Subject: Consistently return `Symbol *` from SymbolTable's add-family functions. llvm-svn: 360845 --- lld/ELF/SymbolTable.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'lld/ELF/SymbolTable.cpp') diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index de3856bdd42..102a7cf783f 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -381,7 +381,7 @@ Symbol *SymbolTable::addDefined(const Defined &New) { return Old; } -void SymbolTable::addShared(const SharedSymbol &New) { +Symbol *SymbolTable::addShared(const SharedSymbol &New) { Symbol *Old = insert(New); mergeProperties(Old, New); @@ -391,7 +391,7 @@ void SymbolTable::addShared(const SharedSymbol &New) { if (Old->isPlaceholder()) { replaceSymbol(Old, &New); - return; + return Old; } if (Old->Visibility == STV_DEFAULT && (Old->isUndefined() || Old->isLazy())) { @@ -401,6 +401,7 @@ void SymbolTable::addShared(const SharedSymbol &New) { replaceSymbol(Old, &New); Old->Binding = Binding; } + return Old; } Symbol *SymbolTable::addBitcode(const Defined &New) { @@ -429,17 +430,17 @@ Symbol *SymbolTable::find(StringRef Name) { return SymVector[It->second]; } -template void SymbolTable::addLazy(const LazyT &New) { +template Symbol *SymbolTable::addLazy(const LazyT &New) { Symbol *Old = insert(New); mergeProperties(Old, New); if (Old->isPlaceholder()) { replaceSymbol(Old, &New); - return; + return Old; } if (!Old->isUndefined()) - return; + return Old; // An undefined weak will not fetch archive members. See comment on Lazy in // Symbols.h for the details. @@ -448,16 +449,21 @@ template void SymbolTable::addLazy(const LazyT &New) { replaceSymbol(Old, &New); Old->Type = Type; Old->Binding = STB_WEAK; - return; + return Old; } if (InputFile *F = New.fetch()) parseFile(F); + return Old; } -void SymbolTable::addLazyArchive(const LazyArchive &New) { addLazy(New); } +Symbol *SymbolTable::addLazyArchive(const LazyArchive &New) { + return addLazy(New); +} -void SymbolTable::addLazyObject(const LazyObject &New) { addLazy(New); } +Symbol *SymbolTable::addLazyObject(const LazyObject &New) { + return addLazy(New); +} void SymbolTable::fetchLazy(Symbol *Sym) { if (auto *S = dyn_cast(Sym)) { -- cgit v1.2.3