tests: Check symtabshdr instead of symtabndx in elfstrmerge.c.
authorMark Wielaard <mark@klomp.org>
Thu, 25 Jan 2018 13:37:17 +0000 (14:37 +0100)
committerMark Wielaard <mark@klomp.org>
Thu, 25 Jan 2018 13:37:17 +0000 (14:37 +0100)
Some gcc omptimization levels (-Og in particular) didn't see that when
symtabndx != 0, then symtabshdr was certain to be initialized. Change
the symtabndx == 0 check to symtabshdr == NULL and initialize symtabshdr
to work around that.

Signed-off-by: Mark Wielaard <mark@klomp.org>
tests/ChangeLog
tests/elfstrmerge.c

index 758f20e..be203ad 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-25  Mark Wielaard  <mark@klomp.org>
+
+       * elfstrmerge.c (main): Initialize and check symtabshdr instead of
+       symtabndx.
+
 2018-01-14  Petr Machata  <pmachata@gmail.com>
 
        * testfile-sizes4.o.bz2: New test file.
@@ -12,9 +17,9 @@
 
 2017-12-11  Dima Kogan  <dima@secretsauce.net>
 
-        * run-aggregate-size.sh: Added check for multi-dimensional arrays.
-        * run-peel-type.sh: Likewise.
-        * testfile-sizes3.o.bz2: Likewise.
+       * run-aggregate-size.sh: Added check for multi-dimensional arrays.
+       * run-peel-type.sh: Likewise.
+       * testfile-sizes3.o.bz2: Likewise.
 
 2017-12-07  Mark Wielaard  <mark@klomp.org>
 
index 8d5b53c..6924d0e 100644 (file)
@@ -195,7 +195,7 @@ main (int argc, char **argv)
   size_t symtabndx = 0;
   Elf_Scn *symtabscn = NULL;
   GElf_Shdr symtabshdr_mem;
-  GElf_Shdr *symtabshdr;
+  GElf_Shdr *symtabshdr = NULL;
   while ((symtabscn = elf_nextscn (elf, symtabscn)) != NULL)
     {
       symtabshdr = gelf_getshdr (symtabscn, &symtabshdr_mem);
@@ -210,7 +210,7 @@ main (int argc, char **argv)
        }
     }
 
-  if (symtabndx == 0)
+  if (symtabshdr == NULL)
     fail ("No symtab found", fname);
 
   if ((symtabshdr->sh_flags & SHF_ALLOC) != 0)