summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2019-05-16 03:54:41 +0000
committerRui Ueyama <ruiu@google.com>2019-05-16 03:54:41 +0000
commitd668873bfe487c8eaec96db927e28de40cf4db5e (patch)
tree09d5461173f157eea8568052ef6d17bff1b38d9d /lld/ELF/SymbolTable.cpp
parent943cd0058027f8fa0e5d55860197338746dbf5d4 (diff)
downloadbcm5719-llvm-d668873bfe487c8eaec96db927e28de40cf4db5e.tar.gz
bcm5719-llvm-d668873bfe487c8eaec96db927e28de40cf4db5e.zip
Consistently return `Symbol *` from SymbolTable's add-family functions.
llvm-svn: 360845
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r--lld/ELF/SymbolTable.cpp22
1 files changed, 14 insertions, 8 deletions
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 <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::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<LazyArchive>(Sym)) {
OpenPOWER on IntegriCloud