PR23566, false uninitialized warning
authorAlan Modra <amodra@gmail.com>
Thu, 23 Aug 2018 14:50:05 +0000 (00:20 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 23 Aug 2018 14:56:40 +0000 (00:26 +0930)
PR 23566
* emultempl/elf32.em (before_allocation): Warning fix.

ld/ChangeLog
ld/emultempl/elf32.em

index 66f890cbd0c9ff2e920fd8624e606da1f8914dd9..4b33f72eff50fb9fe7f95b340771cab8db04112b 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-23  Alan Modra  <amodra@gmail.com>
+
+       PR 23566
+       * emultempl/elf32.em (before_allocation): Warning fix.
+
 2018-08-23  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/23536
index 5160e2449b9e248c1430d84774730a225ce65221..eac4ba795e9f0914aea266f48fcf7dc90356f2fc 100644 (file)
@@ -1680,11 +1680,6 @@ gld${EMULATION_NAME}_append_to_separated_string (char **to, char *op_arg)
     }
 }
 
-#if defined(__GNUC__) && GCC_VERSION < 4006
-  /* Work around a GCC uninitialized warning bug fixed in GCC 4.6.  */
-static struct bfd_link_hash_entry ehdr_start_empty;
-#endif
-
 /* This is called after the sections have been attached to output
    sections, but before any sizes or addresses have been set.  */
 
@@ -1695,13 +1690,11 @@ gld${EMULATION_NAME}_before_allocation (void)
   asection *sinterp;
   bfd *abfd;
   struct elf_link_hash_entry *ehdr_start = NULL;
-#if defined(__GNUC__) && GCC_VERSION < 4006
-  /* Work around a GCC uninitialized warning bug fixed in GCC 4.6.  */
-  struct bfd_link_hash_entry ehdr_start_save = ehdr_start_empty;
-#else
   struct bfd_link_hash_entry ehdr_start_save;
-#endif
 
+  /* The memset is here only to silence brain-dead compiler warnings
+     that the variable may be used uninitialized.  */
+  memset (&ehdr_start_save, 0, sizeof ehdr_start_save);
   if (is_elf_hash_table (link_info.hash))
     {
       _bfd_elf_tls_setup (link_info.output_bfd, &link_info);