[gdb/symtab] Do more zero-initialization of type::fields
authorTom de Vries <tdevries@suse.de>
Thu, 31 Aug 2023 07:37:44 +0000 (09:37 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 31 Aug 2023 07:37:44 +0000 (09:37 +0200)
Now that we've introduced type::{alloc_fields,copy_fields}, the places where
no zero-initialization of allocated fields is done are easy to spot:
...
$ find gdb* -type f | grep -v ChangeLog | xargs grep alloc_fields | grep false
gdb/coffread.c:  type->alloc_fields (nfields, false);
gdb/coffread.c:  type->alloc_fields (nsyms, false);
gdb/stabsread.c:   ftype->alloc_fields (nsemi, false);
gdb/gdbtypes.c:  resolved_type->alloc_fields (nfields, false);
gdb/gdbtypes.c:  alloc_fields (nfields, false);
gdb/gdbtypes.c:  alloc_fields (nfields, false);
gdb/mdebugread.c: t->alloc_fields (nfields, false);
gdb/mdebugread.c:   ftype->alloc_fields (nparams, false);
...

All hits in gdbtypes.c are ok.  There are two hits in the two variants of
copy_fields, and there's already a comment for the third.

AFAICT, the other ones are not ok, so fix those by dropping the "false"
argument.

Tested on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>
gdb/coffread.c
gdb/mdebugread.c
gdb/stabsread.c

index e132dd1a1f718c8125c02a8e755d82178916c649..e251f110ff844e191000c07931a9a8fe71da0101 100644 (file)
@@ -2032,7 +2032,7 @@ coff_read_struct_type (int index, int length, int lastsym,
     }
   /* Now create the vector of fields, and record how big it is.  */
 
-  type->alloc_fields (nfields, false);
+  type->alloc_fields (nfields);
 
   /* Copy the saved-up fields into the field vector.  */
 
@@ -2110,7 +2110,7 @@ coff_read_enum_type (int index, int length, int lastsym,
   else /* Assume ints.  */
     type->set_length (gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT);
   type->set_code (TYPE_CODE_ENUM);
-  type->alloc_fields (nsyms, false);
+  type->alloc_fields (nsyms);
 
   /* Find the symbols for the values and put them into the type.
      The symbols can be found in the symlist that we put them on
index 688501e157a6def1646fc94fff48b23bb94db81c..ad9967b75fad6da0e2ddefbb1d5d06d2736e7b36 100644 (file)
@@ -1034,7 +1034,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
 
        t->set_code (type_code);
        t->set_length (sh->value);
-       t->alloc_fields (nfields, false);
+       t->alloc_fields (nfields);
 
        if (type_code == TYPE_CODE_ENUM)
          {
@@ -1195,7 +1195,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
 
              if (nparams > 0)
                {
-                 ftype->alloc_fields (nparams, false);
+                 ftype->alloc_fields (nparams);
 
                  iparams = 0;
                  for (struct symbol *sym : block_iterator_range (cblock))
index c29d1c0d397a58386574ed9ebb0f7f38d6bdf250..ad9258a9f203559aa91ec8d25b42634827b26cb0 100644 (file)
@@ -982,7 +982,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
            }
 
          /* Allocate parameter information fields and fill them in.  */
-         ftype->alloc_fields (nsemi, false);
+         ftype->alloc_fields (nsemi);
          while (*p++ == ';')
            {
              struct type *ptype;