[lld] r360845 - Consistently return `Symbol *` from SymbolTable's add-family functions.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Wed May 15 20:54:41 PDT 2019
Author: ruiu
Date: Wed May 15 20:54:41 2019
New Revision: 360845
URL: http://llvm.org/viewvc/llvm-project?rev=360845&view=rev
Log:
Consistently return `Symbol *` from SymbolTable's add-family functions.
Modified:
lld/trunk/ELF/SymbolTable.cpp
lld/trunk/ELF/SymbolTable.h
Modified: lld/trunk/ELF/SymbolTable.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.cpp?rev=360845&r1=360844&r2=360845&view=diff
==============================================================================
--- lld/trunk/ELF/SymbolTable.cpp (original)
+++ lld/trunk/ELF/SymbolTable.cpp Wed May 15 20:54:41 2019
@@ -381,7 +381,7 @@ Symbol *SymbolTable::addDefined(const De
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 Shared
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 Shared
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 <class LazyT> void SymbolTable::addLazy(const LazyT &New) {
+template <class LazyT> 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 <class LazyT> void SymbolTable:
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<LazyArchive>(Sym)) {
Modified: lld/trunk/ELF/SymbolTable.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.h?rev=360845&r1=360844&r2=360845&view=diff
==============================================================================
--- lld/trunk/ELF/SymbolTable.h (original)
+++ lld/trunk/ELF/SymbolTable.h Wed May 15 20:54:41 2019
@@ -47,9 +47,9 @@ public:
Symbol *addUndefined(const Undefined &New);
Symbol *addDefined(const Defined &New);
- void addShared(const SharedSymbol &New);
- void addLazyArchive(const LazyArchive &New);
- void addLazyObject(const LazyObject &New);
+ Symbol *addShared(const SharedSymbol &New);
+ Symbol *addLazyArchive(const LazyArchive &New);
+ Symbol *addLazyObject(const LazyObject &New);
Symbol *addBitcode(const Defined &New);
Symbol *addCommon(const CommonSymbol &New);
@@ -70,7 +70,7 @@ public:
llvm::DenseMap<StringRef, SharedFile *> SoNames;
private:
- template <class LazyT> void addLazy(const LazyT &New);
+ template <class LazyT> Symbol *addLazy(const LazyT &New);
std::vector<Symbol *> findByVersion(SymbolVersion Ver);
std::vector<Symbol *> findAllByVersion(SymbolVersion Ver);
More information about the llvm-commits
mailing list