Fix warning-avoidance initialization in xcoffread.c
authorTom Tromey <tom@tromey.com>
Sun, 5 Jun 2022 17:12:57 +0000 (11:12 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 10 Jun 2022 20:27:54 +0000 (14:27 -0600)
With the registry rewrite series, on Fedora 34, I started seeing this
error in xcoffread.c:

../../binutils-gdb/gdb/xcoffread.c: In function ‘void read_xcoff_symtab(objfile*, legacy_psymtab*)’:
../../binutils-gdb/gdb/xcoffread.c:948:25: error: ‘main_aux’ is used uninitialized [-Werror=uninitialized]
  948 |   union internal_auxent fcn_aux_saved = main_aux;
      |                         ^~~~~~~~~~~~~
../../binutils-gdb/gdb/xcoffread.c:933:25: note: ‘main_aux’ declared here
  933 |   union internal_auxent main_aux;
      |                         ^~~~~~~~

I don't know why this error started suddenly... that seems weird,
because it's not obviously related to the changes I made.

Looking into it, it seems this line was intended to avoid a similar
warning -- but since 'main_aux' is uninitialized at the point where it
is used, this fix was incomplete.

This patch avoids the warning by initializing using "{}".  I'm
checking this in.

gdb/xcoffread.c

index e520d7ad40b22ea9533f5556d33e3d4799e8fc9f..9e571d0419cf74e93a519d7c9370845a3d3ac437 100644 (file)
@@ -945,7 +945,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
   struct xcoff_symbol fcn_stab_saved = { 0 };
 
   /* fcn_cs_saved is global because process_xcoff_symbol needs it.  */
-  union internal_auxent fcn_aux_saved = main_aux;
+  union internal_auxent fcn_aux_saved {};
   struct context_stack *newobj;
 
   const char *filestring = pst->filename;      /* Name of the current file.  */