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>
}
/* 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. */
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
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)
{
if (nparams > 0)
{
- ftype->alloc_fields (nparams, false);
+ ftype->alloc_fields (nparams);
iparams = 0;
for (struct symbol *sym : block_iterator_range (cblock))
}
/* Allocate parameter information fields and fill them in. */
- ftype->alloc_fields (nsemi, false);
+ ftype->alloc_fields (nsemi);
while (*p++ == ';')
{
struct type *ptype;