aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-08-31 09:37:44 +0200
committerTom de Vries <tdevries@suse.de>2023-08-31 09:37:44 +0200
commit4b3d893ac8bb787ff229a9f765a771903c760b97 (patch)
treedc23f1e13fef4a6057cc4d11ce88817380cabe46
parent2774f2dad5f05e68771c07df6ab0fb23baa2118e (diff)
downloadgdb-4b3d893ac8bb787ff229a9f765a771903c760b97.zip
gdb-4b3d893ac8bb787ff229a9f765a771903c760b97.tar.gz
gdb-4b3d893ac8bb787ff229a9f765a771903c760b97.tar.bz2
[gdb/symtab] Do more zero-initialization of type::fields
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>
-rw-r--r--gdb/coffread.c4
-rw-r--r--gdb/mdebugread.c4
-rw-r--r--gdb/stabsread.c2
3 files changed, 5 insertions, 5 deletions
diff --git a/gdb/coffread.c b/gdb/coffread.c
index e132dd1..e251f11 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -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
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 688501e..ad9967b 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -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))
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index c29d1c0..ad9258a 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -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;