Ticket #33201: pr12161.diff

File pr12161.diff, 994 bytes (added by titus@…, 12 years ago)

patch file for elf32-avr.c

  • bfd/elf32-avr.c

    old new  
    15031503       bfd_vma symval;
    15041504       bfd_vma shrinked_insn_address;
    15051505
     1506       if (isec->reloc_count == 0)
     1507         continue;
     1508
    15061509       shrinked_insn_address = (sec->output_section->vma
    15071510                                + sec->output_offset + addr - count);
    15081511
    1509        irelend = elf_section_data (isec)->relocs + isec->reloc_count;
    1510        for (irel = elf_section_data (isec)->relocs;
     1512       irel = elf_section_data (isec)->relocs;
     1513       if (irel == NULL)
     1514         irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, FALSE);
     1515
     1516       for (irelend = irel + isec->reloc_count;
    15111517            irel < irelend;
    15121518            irel++)
    15131519         {
     
    15641570           /* else...Reference symbol is extern.  No need for adjusting
    15651571              the addend.  */
    15661572         }
     1573
     1574       if (elf_section_data (isec)->relocs == NULL)
     1575         free (irelend - isec->reloc_count);
    15671576     }
    15681577  }
    15691578