diff options
| author | Rui Ueyama <ruiu@google.com> | 2018-02-28 22:51:51 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2018-02-28 22:51:51 +0000 |
| commit | b961abc8863292a00e9431b203346f815bfd9724 (patch) | |
| tree | 25fda0716eafde9cfda9fa2be85e009b63d8d2ae /lld/wasm/SymbolTable.cpp | |
| parent | 1584f9eddda34aacdc87898ceacb5792fb570bb3 (diff) | |
| download | bcm5719-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.cpp | 28 |
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; |

