ELF: Simplify. NFCI.

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

llvm-svn: 357739
This commit is contained in:
Peter Collingbourne 2019-04-05 01:31:40 +00:00
parent 7c28937baf
commit ad4376e8af
1 changed files with 4 additions and 7 deletions

View File

@ -876,7 +876,7 @@ SharedFile<ELFT>::SharedFile(MemoryBufferRef M, StringRef DefaultSoName)
// Partially parse the shared object file so that we can call
// getSoName on this object.
template <class ELFT> void SharedFile<ELFT>::parseDynamic() {
const Elf_Shdr *DynamicSec = nullptr;
ArrayRef<Elf_Dyn> DynamicTags;
const ELFFile<ELFT> Obj = this->getObj();
ArrayRef<Elf_Shdr> Sections = CHECK(Obj.sections(), this);
@ -889,7 +889,8 @@ template <class ELFT> void SharedFile<ELFT>::parseDynamic() {
this->initSymtab(Sections, &Sec);
break;
case SHT_DYNAMIC:
DynamicSec = &Sec;
DynamicTags =
CHECK(Obj.template getSectionContentsAsArray<Elf_Dyn>(&Sec), this);
break;
case SHT_GNU_versym:
this->VersymSec = &Sec;
@ -904,11 +905,7 @@ template <class ELFT> void SharedFile<ELFT>::parseDynamic() {
error("SHT_GNU_versym should be associated with symbol table");
// Search for a DT_SONAME tag to initialize this->SoName.
if (!DynamicSec)
return;
ArrayRef<Elf_Dyn> Arr =
CHECK(Obj.template getSectionContentsAsArray<Elf_Dyn>(DynamicSec), this);
for (const Elf_Dyn &Dyn : Arr) {
for (const Elf_Dyn &Dyn : DynamicTags) {
if (Dyn.d_tag == DT_NEEDED) {
uint64_t Val = Dyn.getVal();
if (Val >= this->StringTable.size())