PR 9841
authorNick Clifton <nickc@redhat.com>
Wed, 18 Feb 2009 15:28:56 +0000 (15:28 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 18 Feb 2009 15:28:56 +0000 (15:28 +0000)
        * elf32-avr.c: Handle case where no local symbos exist correctly.

bfd/ChangeLog
bfd/elf32-avr.c

index 808778f..977c9ab 100644 (file)
@@ -1,3 +1,8 @@
+2009-02-18  Bjoern Haase  <bjoern.m.haase@web.de>
+
+       PR 9841
+       * elf32-avr.c: Handle case where no local symbos exist correctly.
+
 2009-02-16  Christophe Lyon  <christophe.lyon@st.com>
 
        bfd/
index afcef18..9190db3 100644 (file)
@@ -1415,7 +1415,6 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
   Elf_Internal_Rela *irelalign;
   Elf_Internal_Sym *isym;
   Elf_Internal_Sym *isymbuf = NULL;
-  Elf_Internal_Sym *isymend;
   bfd_vma toaddr;
   struct elf_link_hash_entry **sym_hashes;
   struct elf_link_hash_entry **end_hashes;
@@ -1553,13 +1552,19 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
 
   /* Adjust the local symbols defined in this section.  */
   isym = (Elf_Internal_Sym *) symtab_hdr->contents;
-  isymend = isym + symtab_hdr->sh_info;
-  for (; isym < isymend; isym++)
+  /* Fix PR 9841, there may be no local symbols.  */
+  if (isym != NULL)
     {
-      if (isym->st_shndx == sec_shndx
-          && isym->st_value > addr
-          && isym->st_value < toaddr)
-        isym->st_value -= count;
+      Elf_Internal_Sym *isymend;
+
+      isymend = isym + symtab_hdr->sh_info;
+      for (; isym < isymend; isym++)
+       {
+         if (isym->st_shndx == sec_shndx
+             && isym->st_value > addr
+             && isym->st_value < toaddr)
+           isym->st_value -= count;
+       }
     }
 
   /* Now adjust the global symbols defined in this section.  */