Delete broken code.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 6 Aug 2015 15:33:21 +0000 (15:33 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 6 Aug 2015 15:33:21 +0000 (15:33 +0000)
This was using a hard coded string table and getting it for every symbol.

The symbol name was already available.

llvm-svn: 244220

lld/ELF/InputFiles.cpp
lld/ELF/Symbols.cpp
lld/ELF/Symbols.h

index aaddc7d..8e7e296 100644 (file)
@@ -71,7 +71,7 @@ SymbolBody *elf2::ObjectFile<ELFT>::createSymbolBody(StringRef StringTable,
   StringRef Name = *NameOrErr;
   if (Sym->isUndefined())
     return new (Alloc) Undefined(Name);
-  return new (Alloc) DefinedRegular<ELFT>(this, Sym);
+  return new (Alloc) DefinedRegular<ELFT>(Name);
 }
 
 namespace lld {
index 3e8cb70..194d379 100644 (file)
@@ -18,22 +18,8 @@ using namespace lld;
 using namespace lld::elf2;
 
 template <class ELFT>
-static StringRef
-getSymbolName(const llvm::object::ELFFile<ELFT> *F,
-  const typename llvm::object::ELFFile<ELFT>::Elf_Sym *S) {
-  ErrorOr<StringRef> StrTabOrErr =
-      F->getStringTableForSymtab(*F->getDotSymtabSec());
-  error(StrTabOrErr, "Invalid string table.");
-  StringRef StrTab = *StrTabOrErr;
-  if (S->st_name >= StrTab.size())
-    error("Invalid string table offset");
-  return StrTab.data() + S->st_name;
-}
-
-template <class ELFT>
-DefinedRegular<ELFT>::DefinedRegular(ObjectFile<ELFT> *F, const Elf_Sym *S)
-    : Defined(DefinedRegularKind, getSymbolName<ELFT>(F->getObj(), S)),
-      File(F) {}
+DefinedRegular<ELFT>::DefinedRegular(StringRef Name)
+    : Defined(DefinedRegularKind, Name) {}
 
 // Returns 1, 0 or -1 if this symbol should take precedence
 // over the Other, tie or lose, respectively.
index a039d6a..1707047 100644 (file)
@@ -87,14 +87,11 @@ template <class ELFT> class DefinedRegular : public Defined {
   typedef typename llvm::object::ELFFile<ELFT>::Elf_Sym Elf_Sym;
 
 public:
-  DefinedRegular(ObjectFile<ELFT> *F, const Elf_Sym *S);
+  DefinedRegular(StringRef Name);
 
   static bool classof(const SymbolBody *S) {
     return S->kind() == DefinedRegularKind;
   }
-
-private:
-  ObjectFile<ELFT> *File;
 };
 
 // Undefined symbols.