diff options
Diffstat (limited to 'lld/ELF/InputFiles.cpp')
| -rw-r--r-- | lld/ELF/InputFiles.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 5850b30ca0d..f8e80062c60 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -286,12 +286,13 @@ bool elf::ObjectFile<ELFT>::shouldMerge(const Elf_Shdr &Sec) { template <class ELFT> void elf::ObjectFile<ELFT>::initializeSections( DenseSet<CachedHashStringRef> &ComdatGroups) { - uint64_t Size = this->ELFObj.getNumSections(); + const ELFFile<ELFT> &Obj = this->ELFObj; + ArrayRef<Elf_Shdr> ObjSections = check(Obj.sections()); + uint64_t Size = ObjSections.size(); Sections.resize(Size); unsigned I = -1; - const ELFFile<ELFT> &Obj = this->ELFObj; StringRef SectionStringTable = check(Obj.getSectionStringTable()); - for (const Elf_Shdr &Sec : check(Obj.sections())) { + for (const Elf_Shdr &Sec : ObjSections) { ++I; if (Sections[I] == &InputSection<ELFT>::Discarded) continue; |

