+2015-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (assign_file_positions_for_non_load_sections): Iterate
+ sections by pointer.
+ (_bfd_elf_assign_file_positions_for_non_load): Likewise.
+
2015-04-14 H.J. Lu <hongjiu.lu@intel.com>
* bfd-in.h (compressed_debug_section_type): New.
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
Elf_Internal_Shdr **i_shdrpp;
- Elf_Internal_Shdr **hdrpp;
+ Elf_Internal_Shdr **hdrpp, **end_hdrpp;
Elf_Internal_Phdr *phdrs;
Elf_Internal_Phdr *p;
struct elf_segment_map *m;
bfd_vma filehdr_vaddr, filehdr_paddr;
bfd_vma phdrs_vaddr, phdrs_paddr;
file_ptr off;
- unsigned int num_sec;
- unsigned int i;
unsigned int count;
i_shdrpp = elf_elfsections (abfd);
- num_sec = elf_numsections (abfd);
+ end_hdrpp = i_shdrpp + elf_numsections (abfd);
off = elf_next_file_pos (abfd);
- for (i = 1, hdrpp = i_shdrpp + 1; i < num_sec; i++, hdrpp++)
+ for (hdrpp = i_shdrpp + 1; hdrpp < end_hdrpp; hdrpp++)
{
Elf_Internal_Shdr *hdr;
}
else if (m->count != 0)
{
+ unsigned int i;
if (p->p_type != PT_LOAD
&& (p->p_type != PT_NOTE
|| bfd_get_format (abfd) != bfd_core))
_bfd_elf_assign_file_positions_for_non_load (bfd *abfd)
{
file_ptr off;
- unsigned int i, num_sec;
- Elf_Internal_Shdr **shdrpp;
+ Elf_Internal_Shdr **shdrpp, **end_shdrpp;
Elf_Internal_Ehdr *i_ehdrp;
const struct elf_backend_data *bed;
off = elf_next_file_pos (abfd);
- num_sec = elf_numsections (abfd);
- for (i = 1, shdrpp = elf_elfsections (abfd) + 1; i < num_sec; i++, shdrpp++)
+ shdrpp = elf_elfsections (abfd);
+ end_shdrpp = shdrpp + elf_numsections (abfd);
+ for (shdrpp++; shdrpp < end_shdrpp; shdrpp++)
{
Elf_Internal_Shdr *shdrp;