[lld] r241128 - COFF: Simplify SymbolTable::findLazy. NFC.

Rui Ueyama ruiu at google.com
Tue Jun 30 16:46:52 PDT 2015


Author: ruiu
Date: Tue Jun 30 18:46:52 2015
New Revision: 241128

URL: http://llvm.org/viewvc/llvm-project?rev=241128&view=rev
Log:
COFF: Simplify SymbolTable::findLazy. NFC.

Modified:
    lld/trunk/COFF/Driver.cpp
    lld/trunk/COFF/SymbolTable.cpp
    lld/trunk/COFF/SymbolTable.h

Modified: lld/trunk/COFF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=241128&r1=241127&r2=241128&view=diff
==============================================================================
--- lld/trunk/COFF/Driver.cpp (original)
+++ lld/trunk/COFF/Driver.cpp Tue Jun 30 18:46:52 2015
@@ -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<Undefined>(Sym->Body))
       return E[1];
   }
   return "";

Modified: lld/trunk/COFF/SymbolTable.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/SymbolTable.cpp?rev=241128&r1=241127&r2=241128&view=diff
==============================================================================
--- lld/trunk/COFF/SymbolTable.cpp (original)
+++ lld/trunk/COFF/SymbolTable.cpp Tue Jun 30 18:46:52 2015
@@ -237,23 +237,11 @@ Defined *SymbolTable::find(StringRef Nam
   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<Defined>(Sym->Body))
-    return B;
-  if (auto *B = dyn_cast<Lazy>(Sym->Body)) {
-    if (addMemberFile(B))
-      return nullptr;
-    if (run())
-      return nullptr;
-    return cast<Defined>(Sym->Body);
-  }
-  return nullptr;
+  return It->second;
 }
 
 // Find a given symbol or its mangled symbol.

Modified: lld/trunk/COFF/SymbolTable.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/SymbolTable.h?rev=241128&r1=241127&r2=241128&view=diff
==============================================================================
--- lld/trunk/COFF/SymbolTable.h (original)
+++ lld/trunk/COFF/SymbolTable.h Tue Jun 30 18:46:52 2015
@@ -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)





More information about the llvm-commits mailing list