From 197400e8009fa9a15ddc59cbf2cc32b0debd3424 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 24 Feb 2020 15:50:57 -0700 Subject: [PATCH] Convert IS_TYPE_UNIT_GROUP to method This converts the IS_TYPE_UNIT_GROUP to a method on dwarf2_per_cu_data. gdb/ChangeLog 2020-02-24 Tom Tromey * dwarf2/read.h (struct dwarf2_per_cu_data) : New method. * dwarf2/read.c (IS_TYPE_UNIT_GROUP): Remove. (dw2_do_instantiate_symtab, dw2_get_file_names) (build_type_psymtab_dependencies, load_full_type_unit): Update. --- gdb/ChangeLog | 8 ++++++++ gdb/dwarf2/read.c | 12 +++++------- gdb/dwarf2/read.h | 7 +++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 044a1920edf..2507b9c7dd0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2020-02-24 Tom Tromey + + * dwarf2/read.h (struct dwarf2_per_cu_data) : + New method. + * dwarf2/read.c (IS_TYPE_UNIT_GROUP): Remove. + (dw2_do_instantiate_symtab, dw2_get_file_names) + (build_type_psymtab_dependencies, load_full_type_unit): Update. + 2020-02-24 Tom Tromey * dwarf2read.c (dwarf2_build_psymtabs_hard): Use diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 701d19ebb75..0f514eafe88 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -573,9 +573,7 @@ struct type_unit_group /* dwarf2read.c's main "handle" on a TU symtab. To simplify things we create an artificial CU that "includes" all the type units using this stmt_list so that the rest of the code still has - a "per_cu" handle on the symtab. - This PER_CU is recognized by having no section. */ -#define IS_TYPE_UNIT_GROUP(per_cu) ((per_cu)->section == NULL) + a "per_cu" handle on the symtab. */ struct dwarf2_per_cu_data per_cu; /* The TUs that share this DW_AT_stmt_list entry. @@ -2322,7 +2320,7 @@ dw2_do_instantiate_symtab (struct dwarf2_per_cu_data *per_cu, bool skip_partial) /* Skip type_unit_groups, reading the type units they contain is handled elsewhere. */ - if (IS_TYPE_UNIT_GROUP (per_cu)) + if (per_cu->type_unit_group_p ()) return; /* The destructor of dwarf2_queue_guard frees any entries left on @@ -3178,7 +3176,7 @@ dw2_get_file_names (struct dwarf2_per_cu_data *this_cu) /* This should never be called for TUs. */ gdb_assert (! this_cu->is_debug_types); /* Nor type unit groups. */ - gdb_assert (! IS_TYPE_UNIT_GROUP (this_cu)); + gdb_assert (! this_cu->type_unit_group_p ()); if (this_cu->v.quick->file_names != NULL) return this_cu->v.quick->file_names; @@ -7583,7 +7581,7 @@ build_type_psymtab_dependencies (void **slot, void *info) int i; gdb_assert (len > 0); - gdb_assert (IS_TYPE_UNIT_GROUP (per_cu)); + gdb_assert (per_cu->type_unit_group_p ()); pst->number_of_dependencies = len; pst->dependencies = objfile->partial_symtabs->allocate_dependencies (len); @@ -22718,7 +22716,7 @@ load_full_type_unit (struct dwarf2_per_cu_data *per_cu) struct signatured_type *sig_type; /* Caller is responsible for ensuring type_unit_groups don't get here. */ - gdb_assert (! IS_TYPE_UNIT_GROUP (per_cu)); + gdb_assert (! per_cu->type_unit_group_p ()); /* We have the per_cu, but we need the signatured_type. Fortunately this is an easy translation. */ diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index b06c2e218c1..f7e740c3e9e 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -437,6 +437,13 @@ struct dwarf2_per_cu_data { return dwarf_version; } + + /* A type unit group has a per_cu object that is recognized by + having no section. */ + bool type_unit_group_p () const + { + return section == nullptr; + } }; /* Entry in the signatured_types hash table. */ -- 2.30.2