Convert IS_TYPE_UNIT_GROUP to method
authorTom Tromey <tom@tromey.com>
Mon, 24 Feb 2020 22:50:57 +0000 (15:50 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 24 Feb 2020 22:50:57 +0000 (15:50 -0700)
This converts the IS_TYPE_UNIT_GROUP to a method on
dwarf2_per_cu_data.

gdb/ChangeLog
2020-02-24  Tom Tromey  <tom@tromey.com>

* dwarf2/read.h (struct dwarf2_per_cu_data) <type_unit_group_p>:
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
gdb/dwarf2/read.c
gdb/dwarf2/read.h

index 044a1920edfb97d51699e071b102a6e57c779ee8..2507b9c7dd025601b02420a866ae7362d6488212 100644 (file)
@@ -1,3 +1,11 @@
+2020-02-24  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.h (struct dwarf2_per_cu_data) <type_unit_group_p>:
+       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  <tom@tromey.com>
 
        * dwarf2read.c (dwarf2_build_psymtabs_hard): Use
index 701d19ebb750082860ff3ab81c986e0833e2fc82..0f514eafe880b4a4efd6d2a7eacf7e0247e431de 100644 (file)
@@ -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.  */
index b06c2e218c13542fdc911feaf8f900505c813c83..f7e740c3e9ec0eae524838c6dabb101778465799 100644 (file)
@@ -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.  */