MIPS/BFD: Fix assertion in `mips_elf_sort_hash_table'
authorMaciej W. Rozycki <macro@imgtec.com>
Thu, 2 Feb 2017 20:53:16 +0000 (20:53 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Thu, 2 Feb 2017 22:33:40 +0000 (22:33 +0000)
Move the assertion on non-NULL `htab' in `mips_elf_sort_hash_table' to
the beginning, before the pointer is dereferenced (`mips_elf_hash_table
(info)' and `elf_hash_table (info)' both point to the same memory
location, differently typed).

bfd/
* elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
non-NULL `htab' to the beginning.

bfd/ChangeLog
bfd/elfxx-mips.c

index 62a3fea82fefd71844f1ac19aa37a634a2f3c78d..fca45acfb3476e0906cedc3f299a32f0bb373859 100644 (file)
@@ -1,3 +1,8 @@
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
+       non-NULL `htab' to the beginning.
+
 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
 
        * elflink.c (elf_gc_sweep): Wrap overlong line.
index bda02b128ec0eee9ec35be47a327958ef528c8c5..d1c0f804168b38b90ac8753f764639f68a135a12 100644 (file)
@@ -3832,12 +3832,12 @@ mips_elf_sort_hash_table (bfd *abfd, struct bfd_link_info *info)
   struct mips_elf_hash_sort_data hsd;
   struct mips_got_info *g;
 
-  if (elf_hash_table (info)->dynsymcount == 0)
-    return TRUE;
-
   htab = mips_elf_hash_table (info);
   BFD_ASSERT (htab != NULL);
 
+  if (elf_hash_table (info)->dynsymcount == 0)
+    return TRUE;
+
   g = htab->got_info;
   if (g == NULL)
     return TRUE;