summaryrefslogtreecommitdiffstats
path: root/lld/wasm/SymbolTable.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2018-02-28 22:51:51 +0000
committerRui Ueyama <ruiu@google.com>2018-02-28 22:51:51 +0000
commitb961abc8863292a00e9431b203346f815bfd9724 (patch)
tree25fda0716eafde9cfda9fa2be85e009b63d8d2ae /lld/wasm/SymbolTable.cpp
parent1584f9eddda34aacdc87898ceacb5792fb570bb3 (diff)
downloadbcm5719-llvm-b961abc8863292a00e9431b203346f815bfd9724.tar.gz
bcm5719-llvm-b961abc8863292a00e9431b203346f815bfd9724.zip
[WebAssembly] Reduce code repetition. NFC.
Differential Revision: https://reviews.llvm.org/D43910 llvm-svn: 326379
Diffstat (limited to 'lld/wasm/SymbolTable.cpp')
-rw-r--r--lld/wasm/SymbolTable.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/lld/wasm/SymbolTable.cpp b/lld/wasm/SymbolTable.cpp
index b9f4e6e5e3a..bf7d33c359e 100644
--- a/lld/wasm/SymbolTable.cpp
+++ b/lld/wasm/SymbolTable.cpp
@@ -125,31 +125,23 @@ DefinedFunction *SymbolTable::addSyntheticFunction(StringRef Name,
const WasmSignature *Type,
uint32_t Flags) {
DEBUG(dbgs() << "addSyntheticFunction: " << Name << "\n");
- Symbol *S;
- bool WasInserted;
- std::tie(S, WasInserted) = insert(Name);
- assert(WasInserted);
- return replaceSymbol<DefinedFunction>(S, Name, Flags, Type);
+ assert(!find(Name));
+ return replaceSymbol<DefinedFunction>(insert(Name).first, Name, Flags, Type);
}
DefinedData *SymbolTable::addSyntheticDataSymbol(StringRef Name,
uint32_t Flags) {
DEBUG(dbgs() << "addSyntheticDataSymbol: " << Name << "\n");
- Symbol *S;
- bool WasInserted;
- std::tie(S, WasInserted) = insert(Name);
- assert(WasInserted);
- return replaceSymbol<DefinedData>(S, Name, Flags);
+ assert(!find(Name));
+ return replaceSymbol<DefinedData>(insert(Name).first, Name, Flags);
}
DefinedGlobal *SymbolTable::addSyntheticGlobal(StringRef Name, uint32_t Flags,
InputGlobal *Global) {
DEBUG(dbgs() << "addSyntheticGlobal: " << Name << " -> " << Global << "\n");
- Symbol *S;
- bool WasInserted;
- std::tie(S, WasInserted) = insert(Name);
- assert(WasInserted);
- return replaceSymbol<DefinedGlobal>(S, Name, Flags, nullptr, Global);
+ assert(!find(Name));
+ return replaceSymbol<DefinedGlobal>(insert(Name).first, Name, Flags, nullptr,
+ Global);
}
static bool shouldReplace(const Symbol *Existing, InputFile *NewFile,
@@ -251,7 +243,7 @@ Symbol *SymbolTable::addUndefinedFunction(StringRef Name, uint32_t Flags,
if (WasInserted)
replaceSymbol<UndefinedFunction>(S, Name, Flags, File, Sig);
else if (auto *Lazy = dyn_cast<LazySymbol>(S))
- cast<ArchiveFile>(Lazy->getFile())->addMember(&Lazy->getArchiveSymbol());
+ Lazy->fetch();
else if (S->isDefined())
checkFunctionType(S, File, Sig);
return S;
@@ -268,7 +260,7 @@ Symbol *SymbolTable::addUndefinedData(StringRef Name, uint32_t Flags,
if (WasInserted)
replaceSymbol<UndefinedData>(S, Name, Flags, File);
else if (auto *Lazy = dyn_cast<LazySymbol>(S))
- cast<ArchiveFile>(Lazy->getFile())->addMember(&Lazy->getArchiveSymbol());
+ Lazy->fetch();
else if (S->isDefined())
checkDataType(S, File);
return S;
@@ -286,7 +278,7 @@ Symbol *SymbolTable::addUndefinedGlobal(StringRef Name, uint32_t Flags,
if (WasInserted)
replaceSymbol<UndefinedGlobal>(S, Name, Flags, File, Type);
else if (auto *Lazy = dyn_cast<LazySymbol>(S))
- cast<ArchiveFile>(Lazy->getFile())->addMember(&Lazy->getArchiveSymbol());
+ Lazy->fetch();
else if (S->isDefined())
checkGlobalType(S, File, Type);
return S;
OpenPOWER on IntegriCloud