From 4b6698917d4089efd8fbf20a9362244081eb0995 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Tue, 30 Jun 2015 23:46:52 +0000 Subject: COFF: Simplify SymbolTable::findLazy. NFC. llvm-svn: 241128 --- lld/COFF/Driver.cpp | 3 ++- lld/COFF/SymbolTable.cpp | 16 ++-------------- lld/COFF/SymbolTable.h | 2 +- 3 files changed, 5 insertions(+), 16 deletions(-) (limited to 'lld/COFF') diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index debadc226cc6..66009a203b31 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -217,7 +217,8 @@ StringRef LinkerDriver::findDefaultEntry() { {"wWinMain", "wWinMainCRTStartup"}, }; for (auto E : Entries) { - if (Symtab.findLazy(E[0])) + Symbol *Sym = Symtab.findSymbol(E[0]); + if (Sym && !isa(Sym->Body)) return E[1]; } return ""; diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index 61c6a1ec74f3..8a4ad59e5190 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -237,23 +237,11 @@ Defined *SymbolTable::find(StringRef Name) { return nullptr; } -// Find a given symbol. If a lazy symbol is found, -// resolve that before returning. -Defined *SymbolTable::findLazy(StringRef Name) { +Symbol *SymbolTable::findSymbol(StringRef Name) { auto It = Symtab.find(Name); if (It == Symtab.end()) return nullptr; - Symbol *Sym = It->second; - if (auto *B = dyn_cast(Sym->Body)) - return B; - if (auto *B = dyn_cast(Sym->Body)) { - if (addMemberFile(B)) - return nullptr; - if (run()) - return nullptr; - return cast(Sym->Body); - } - return nullptr; + return It->second; } // Find a given symbol or its mangled symbol. diff --git a/lld/COFF/SymbolTable.h b/lld/COFF/SymbolTable.h index adecaba13f88..8688e8e62311 100644 --- a/lld/COFF/SymbolTable.h +++ b/lld/COFF/SymbolTable.h @@ -59,7 +59,7 @@ public: // mechanisms to allow aliases, a name can be resolved to a // different symbol). Returns a nullptr if not found. Defined *find(StringRef Name); - Defined *findLazy(StringRef Name); + Symbol *findSymbol(StringRef Name); // Find a symbol assuming that Name is a function name. // Not only a given string but its mangled names (in MSVC C++ manner) -- cgit v1.2.3