mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
Remove field_info::nfields member
I noticed that there's no real reason to have field_info::nfields in the DWARF reader. It simply mirrors information that is already available. This patch removes it, in favor of a convenience method. gdb/ChangeLog 2020-02-27 Tom Tromey <tromey@adacore.com> * dwarf2/read.c (struct field_info) <nfields>: Now a method, not a member. (dwarf2_add_field): Don't update nfields. (dwarf2_attach_fields_to_type, process_structure_scope): Update.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2020-02-27 Tom Tromey <tromey@adacore.com>
|
||||||
|
|
||||||
|
* dwarf2/read.c (struct field_info) <nfields>: Now a method, not a
|
||||||
|
member.
|
||||||
|
(dwarf2_add_field): Don't update nfields.
|
||||||
|
(dwarf2_attach_fields_to_type, process_structure_scope): Update.
|
||||||
|
|
||||||
2020-02-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
2020-02-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* gdbtypes.c (create_array_type_with_stride): Use std::abs not
|
* gdbtypes.c (create_array_type_with_stride): Use std::abs not
|
||||||
|
@ -1129,9 +1129,6 @@ struct field_info
|
|||||||
std::vector<struct nextfield> fields;
|
std::vector<struct nextfield> fields;
|
||||||
std::vector<struct nextfield> baseclasses;
|
std::vector<struct nextfield> baseclasses;
|
||||||
|
|
||||||
/* Number of fields (including baseclasses). */
|
|
||||||
int nfields = 0;
|
|
||||||
|
|
||||||
/* Set if the accessibility of one of the fields is not public. */
|
/* Set if the accessibility of one of the fields is not public. */
|
||||||
int non_public_fields = 0;
|
int non_public_fields = 0;
|
||||||
|
|
||||||
@ -1147,6 +1144,12 @@ struct field_info
|
|||||||
/* Nested types defined by this class and the number of elements in this
|
/* Nested types defined by this class and the number of elements in this
|
||||||
list. */
|
list. */
|
||||||
std::vector<struct decl_field> nested_types_list;
|
std::vector<struct decl_field> nested_types_list;
|
||||||
|
|
||||||
|
/* Return the total number of fields (including baseclasses). */
|
||||||
|
int nfields () const
|
||||||
|
{
|
||||||
|
return fields.size () + baseclasses.size ();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Loaded secondary compilation units are kept in memory until they
|
/* Loaded secondary compilation units are kept in memory until they
|
||||||
@ -14207,8 +14210,6 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
|
|||||||
new_field = &fip->fields.back ();
|
new_field = &fip->fields.back ();
|
||||||
}
|
}
|
||||||
|
|
||||||
fip->nfields++;
|
|
||||||
|
|
||||||
attr = dwarf2_attr (die, DW_AT_accessibility, cu);
|
attr = dwarf2_attr (die, DW_AT_accessibility, cu);
|
||||||
if (attr != nullptr)
|
if (attr != nullptr)
|
||||||
new_field->accessibility = DW_UNSND (attr);
|
new_field->accessibility = DW_UNSND (attr);
|
||||||
@ -14468,7 +14469,7 @@ static void
|
|||||||
dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
|
dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
|
||||||
struct dwarf2_cu *cu)
|
struct dwarf2_cu *cu)
|
||||||
{
|
{
|
||||||
int nfields = fip->nfields;
|
int nfields = fip->nfields ();
|
||||||
|
|
||||||
/* Record the field count, allocate space for the array of fields,
|
/* Record the field count, allocate space for the array of fields,
|
||||||
and create blank accessibility bitfields if necessary. */
|
and create blank accessibility bitfields if necessary. */
|
||||||
@ -15336,7 +15337,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Attach fields and member functions to the type. */
|
/* Attach fields and member functions to the type. */
|
||||||
if (fi.nfields)
|
if (fi.nfields () > 0)
|
||||||
dwarf2_attach_fields_to_type (&fi, type, cu);
|
dwarf2_attach_fields_to_type (&fi, type, cu);
|
||||||
if (!fi.fnfieldlists.empty ())
|
if (!fi.fnfieldlists.empty ())
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user