Set is_debug_types in allocate_signatured_type
authorTom Tromey <tom@tromey.com>
Sun, 30 May 2021 14:50:57 +0000 (08:50 -0600)
committerTom Tromey <tom@tromey.com>
Mon, 31 May 2021 01:44:05 +0000 (19:44 -0600)
All callers of allocate_signatured_type set the is_debug_types flag on
the result -- in fact, they are required to, because this is the sign
that downcasting the object to signatured_type is safe.  This patch
moves this assignment into the allocation function.

2021-05-30  Tom Tromey  <tom@tromey.com>

* dwarf2/read.c (dwarf2_per_bfd::allocate_signatured_type): Set
is_debug_types.
(create_signatured_type_table_from_index)
(create_signatured_type_table_from_debug_names, add_type_unit)
(read_comp_units_from_section): Update.

gdb/ChangeLog
gdb/dwarf2/read.c

index ecec841d860eb5e601c1c8b02ee8f26c8d3b4f81..7f52c280c11bfd8c8f3e8b1a79251462fa2800d0 100644 (file)
@@ -1,3 +1,11 @@
+2021-05-30  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_per_bfd::allocate_signatured_type): Set
+       is_debug_types.
+       (create_signatured_type_table_from_index)
+       (create_signatured_type_table_from_debug_names, add_type_unit)
+       (read_comp_units_from_section): Update.
+
 2021-05-30  Tom Tromey  <tom@tromey.com>
 
        * dwarf2/read.h (struct dwarf2_per_bfd) <num_psymtabs,
index 6da312413675149ac55f746e1a506f81652006d5..9e5c3afafccbfe83314714dcc10ac9f4c0ecdc9c 100644 (file)
@@ -2300,6 +2300,7 @@ dwarf2_per_bfd::allocate_signatured_type ()
   std::unique_ptr<signatured_type> result (new signatured_type);
   result->per_bfd = this;
   result->index = all_comp_units.size ();
+  result->is_debug_types = true;
   tu_stats.nr_tus++;
   return result;
 }
@@ -2398,7 +2399,6 @@ create_signatured_type_table_from_index
       sig_type = per_bfd->allocate_signatured_type ();
       sig_type->signature = signature;
       sig_type->type_offset_in_tu = type_offset_in_tu;
-      sig_type->is_debug_types = 1;
       sig_type->section = section;
       sig_type->sect_off = sect_off;
       sig_type->v.quick
@@ -2450,7 +2450,6 @@ create_signatured_type_table_from_debug_names
       sig_type = per_objfile->per_bfd->allocate_signatured_type ();
       sig_type->signature = cu_header.signature;
       sig_type->type_offset_in_tu = cu_header.type_cu_offset_in_tu;
-      sig_type->is_debug_types = 1;
       sig_type->section = section;
       sig_type->sect_off = sect_off;
       sig_type->v.quick
@@ -5896,7 +5895,6 @@ add_type_unit (dwarf2_per_objfile *per_objfile, ULONGEST sig, void **slot)
   per_objfile->per_bfd->all_comp_units.emplace_back
     (sig_type_holder.release ());
   sig_type->signature = sig;
-  sig_type->is_debug_types = 1;
   if (per_objfile->per_bfd->using_index)
     {
       sig_type->v.quick =
@@ -7500,7 +7498,6 @@ read_comp_units_from_section (dwarf2_per_objfile *per_objfile,
                       hex_string (sig_ptr->signature));
          *slot = sig_ptr;
        }
-      this_cu->is_debug_types = (cu_header.unit_type == DW_UT_type);
       this_cu->sect_off = sect_off;
       this_cu->length = cu_header.length + cu_header.initial_length_size;
       this_cu->is_dwz = is_dwz;