[lld] r357670 - ELF: Move SymtabSHNDX and getSectionIndex() to ObjFile. NFCI.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 3 20:13:52 PDT 2019


Author: pcc
Date: Wed Apr  3 20:13:51 2019
New Revision: 357670

URL: http://llvm.org/viewvc/llvm-project?rev=357670&view=rev
Log:
ELF: Move SymtabSHNDX and getSectionIndex() to ObjFile. NFCI.

Differential Revision: https://reviews.llvm.org/D60244

Modified:
    lld/trunk/ELF/InputFiles.cpp
    lld/trunk/ELF/InputFiles.h

Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=357670&r1=357669&r2=357670&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Wed Apr  3 20:13:51 2019
@@ -259,11 +259,6 @@ typename ELFT::SymRange ELFFileBase<ELFT
 }
 
 template <class ELFT>
-uint32_t ELFFileBase<ELFT>::getSectionIndex(const Elf_Sym &Sym) const {
-  return CHECK(getObj().getSectionIndex(&Sym, ELFSyms, SymtabSHNDX), this);
-}
-
-template <class ELFT>
 void ELFFileBase<ELFT>::initSymtab(ArrayRef<Elf_Shdr> Sections,
                                    const Elf_Shdr *Symtab) {
   FirstGlobal = Symtab->sh_info;
@@ -281,6 +276,12 @@ ObjFile<ELFT>::ObjFile(MemoryBufferRef M
   this->ArchiveName = ArchiveName;
 }
 
+template <class ELFT>
+uint32_t ObjFile<ELFT>::getSectionIndex(const Elf_Sym &Sym) const {
+  return CHECK(this->getObj().getSectionIndex(&Sym, this->ELFSyms, SymtabSHNDX),
+               this);
+}
+
 template <class ELFT> ArrayRef<Symbol *> ObjFile<ELFT>::getLocalSymbols() {
   if (this->Symbols.empty())
     return {};
@@ -890,9 +891,6 @@ template <class ELFT> void SharedFile<EL
     case SHT_DYNAMIC:
       DynamicSec = &Sec;
       break;
-    case SHT_SYMTAB_SHNDX:
-      this->SymtabSHNDX = CHECK(Obj.getSHNDXTable(Sec, Sections), this);
-      break;
     case SHT_GNU_versym:
       this->VersymSec = &Sec;
       break;

Modified: lld/trunk/ELF/InputFiles.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.h?rev=357670&r1=357669&r2=357670&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.h (original)
+++ lld/trunk/ELF/InputFiles.h Wed Apr  3 20:13:51 2019
@@ -161,15 +161,12 @@ public:
 
   StringRef getStringTable() const { return StringTable; }
 
-  uint32_t getSectionIndex(const Elf_Sym &Sym) const;
-
   Elf_Sym_Range getGlobalELFSyms();
   Elf_Sym_Range getELFSyms() const { return ELFSyms; }
 
 protected:
   ArrayRef<Elf_Sym> ELFSyms;
   uint32_t FirstGlobal = 0;
-  ArrayRef<Elf_Word> SymtabSHNDX;
   StringRef StringTable;
   void initSymtab(ArrayRef<Elf_Shdr> Sections, const Elf_Shdr *Symtab);
 };
@@ -202,6 +199,8 @@ public:
     return *this->Symbols[SymbolIndex];
   }
 
+  uint32_t getSectionIndex(const Elf_Sym &Sym) const;
+
   template <typename RelT> Symbol &getRelocTargetSym(const RelT &Rel) const {
     uint32_t SymIndex = Rel.getSymbol(Config->IsMips64EL);
     return getSymbol(SymIndex);
@@ -247,6 +246,8 @@ private:
   bool shouldMerge(const Elf_Shdr &Sec);
   Symbol *createSymbol(const Elf_Sym *Sym);
 
+  ArrayRef<Elf_Word> SymtabSHNDX;
+
   // .shstrtab contents.
   StringRef SectionStringTable;
 




More information about the llvm-commits mailing list