From: Ian Lance Taylor Date: Tue, 7 Mar 1995 17:25:07 +0000 (+0000) Subject: * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d211786089fb029fbc7f7e5680be793dbac84879;p=binutils-gdb.git * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking sh_size. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fee1f1776c6..8702af818e0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 7 12:23:47 1995 Ian Lance Taylor + + * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking + sh_size. + Mon Mar 6 23:31:36 1995 Doug Evans * elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 72908ca582a..1766909124d 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -2261,28 +2261,24 @@ elf_sort_hdrs (arg1, arg2) if ((hdr1->sh_flags & SHF_ALLOC) != 0) { + int ret; + if ((hdr2->sh_flags & SHF_ALLOC) == 0) return -1; if (hdr1->sh_addr < hdr2->sh_addr) return -1; else if (hdr1->sh_addr > hdr2->sh_addr) return 1; + /* Put !SHT_NOBITS sections before SHT_NOBITS ones. + The main loop in map_program_segments requires this. */ + ret = (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); + if (ret != 0) + return ret; if (hdr1->sh_size == 0) - { - if (hdr2->sh_size == 0) - { - /* Put !SHT_NOBITS sections before SHT_NOBITS ones. - The main loop in map_program_segments requires this. */ - return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); - } - else - return -1; - } + return -1; else if (hdr2->sh_size == 0) return 1; - /* Put !SHT_NOBITS sections before SHT_NOBITS ones. - The main loop in map_program_segments requires this. */ - return (hdr1->sh_type == SHT_NOBITS) - (hdr2->sh_type == SHT_NOBITS); + return 0; } else {