diff options
author | Nick Clifton <nickc@redhat.com> | 2009-02-18 15:28:56 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2009-02-18 15:28:56 +0000 |
commit | 121230679fd8a176e4d08340bf4ce9027426da81 (patch) | |
tree | ca961bbf1c4a575da180d7aa949d9edec250854c | |
parent | c087fcd326dc166f4a7aebd8485713440133f0ff (diff) | |
download | gdb-121230679fd8a176e4d08340bf4ce9027426da81.zip gdb-121230679fd8a176e4d08340bf4ce9027426da81.tar.gz gdb-121230679fd8a176e4d08340bf4ce9027426da81.tar.bz2 |
PR 9841
* elf32-avr.c: Handle case where no local symbos exist correctly.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-avr.c | 19 |
2 files changed, 17 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 808778f..977c9ab 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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/ diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c index afcef18..9190db3 100644 --- a/bfd/elf32-avr.c +++ b/bfd/elf32-avr.c @@ -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. */ |