diff options
-rw-r--r-- | llvm/include/llvm/Object/ELF.h | 14 | ||||
-rw-r--r-- | llvm/include/llvm/Object/ELFTypes.h | 3 |
2 files changed, 9 insertions, 8 deletions
diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h index 6a100a55152..2050d3adede 100644 --- a/llvm/include/llvm/Object/ELF.h +++ b/llvm/include/llvm/Object/ELF.h @@ -54,9 +54,12 @@ public: typedef Elf_Versym_Impl<ELFT> Elf_Versym; typedef Elf_Hash_Impl<ELFT> Elf_Hash; typedef Elf_GnuHash_Impl<ELFT> Elf_GnuHash; - typedef iterator_range<const Elf_Dyn *> Elf_Dyn_Range; - typedef iterator_range<const Elf_Shdr *> Elf_Shdr_Range; - typedef iterator_range<const Elf_Sym *> Elf_Sym_Range; + typedef typename ELFT::DynRange Elf_Dyn_Range; + typedef typename ELFT::ShdrRange Elf_Shdr_Range; + typedef typename ELFT::SymRange Elf_Sym_Range; + typedef typename ELFT::RelRange Elf_Rel_Range; + typedef typename ELFT::RelaRange Elf_Rela_Range; + typedef typename ELFT::PhdrRange Elf_Phdr_Range; const uint8_t *base() const { return reinterpret_cast<const uint8_t *>(Buf.data()); @@ -131,8 +134,6 @@ public: return make_range(symbol_begin(Sec), symbol_end(Sec)); } - typedef iterator_range<const Elf_Rela *> Elf_Rela_Range; - const Elf_Rela *rela_begin(const Elf_Shdr *sec) const { if (sec->sh_entsize != sizeof(Elf_Rela)) report_fatal_error("Invalid relocation entry size"); @@ -163,7 +164,6 @@ public: return rel_begin(sec) + Size / sizeof(Elf_Rel); } - typedef iterator_range<const Elf_Rel *> Elf_Rel_Range; Elf_Rel_Range rels(const Elf_Shdr *Sec) const { return make_range(rel_begin(Sec), rel_end(Sec)); } @@ -179,8 +179,6 @@ public: return program_header_begin() + Header->e_phnum; } - typedef iterator_range<const Elf_Phdr *> Elf_Phdr_Range; - const Elf_Phdr_Range program_headers() const { return make_range(program_header_begin(), program_header_end()); } diff --git a/llvm/include/llvm/Object/ELFTypes.h b/llvm/include/llvm/Object/ELFTypes.h index d5a9c00598f..aa6dc817ee7 100644 --- a/llvm/include/llvm/Object/ELFTypes.h +++ b/llvm/include/llvm/Object/ELFTypes.h @@ -62,6 +62,9 @@ public: typedef iterator_range<const Dyn *> DynRange; typedef iterator_range<const Shdr *> ShdrRange; typedef iterator_range<const Sym *> SymRange; + typedef iterator_range<const Rel *> RelRange; + typedef iterator_range<const Rela *> RelaRange; + typedef iterator_range<const Phdr *> PhdrRange; typedef packed<uint16_t> Half; typedef packed<uint32_t> Word; |