gdb: add type::stub_is_supported / type::set_stub_is_supported
authorSimon Marchi <simon.marchi@efficios.com>
Mon, 14 Sep 2020 15:08:03 +0000 (11:08 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Mon, 14 Sep 2020 15:08:03 +0000 (11:08 -0400)
Add the `stub_is_supported` and `set_stub_is_supported` methods on `struct type`, in
order to remove the `TYPE_STUB_SUPPORTED` macro.  In this patch, the macro is
changed to use the getter, so all the call sites of the macro that are
used as a setter are changed to use the setter method directly.  The
next patch will remove the macro completely.

gdb/ChangeLog:

* gdbtypes.h (struct type) <stub_is_supported, set_stub_is_supported>: New methods.
(TYPE_STUB_SUPPORTED): Use type::stub_is_supported, change all write call sites to
use type::set_stub_is_supported.

Change-Id: I4dfecf2b5df9c2b7bb8db1e9252082140adf3028

gdb/ChangeLog
gdb/dwarf2/read.c
gdb/gdbtypes.h

index b8f2361b9052dc458e6f70d5ce70153f296f46a3..881429df6f1c5f6365ed9050bc6fb9d08aef213e 100644 (file)
@@ -1,3 +1,9 @@
+2020-09-14  Simon Marchi  <simon.marchi@efficios.com>
+
+       * gdbtypes.h (struct type) <stub_is_supported, set_stub_is_supported>: New methods.
+       (TYPE_STUB_SUPPORTED): Use type::stub_is_supported, change all write call sites to
+       use type::set_stub_is_supported.
+
 2020-09-14  Simon Marchi  <simon.marchi@efficios.com>
 
        * gdbtypes.h (TYPE_VECTOR): Remove, replace all
index 45fdaf863755ff5bc3dc0ccb405d773fbb065f86..410e4c8c6778e706d3367b29e099f17466b9fdf6 100644 (file)
@@ -16084,7 +16084,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
       type->set_is_stub (true);
     }
   else
-    TYPE_STUB_SUPPORTED (type) = 1;
+    type->set_stub_is_supported (true);
 
   if (die_is_declaration (die, cu))
     type->set_is_stub (true);
index 4d567e42ab7d12530c830f934739e048c4ee6b7c..6f1bdfd49d66ebcf23fcd49c533f935371508b40 100644 (file)
@@ -233,7 +233,7 @@ DEF_ENUM_FLAGS_TYPE (enum type_instance_flag_value, type_instance_flags);
    TYPE_STUB(t) with !TYPE_STUB_SUPPORTED(t) may exist if we only
    guessed the TYPE_STUB(t) value (see dwarfread.c).  */
 
-#define TYPE_STUB_SUPPORTED(t)   (TYPE_MAIN_TYPE (t)->flag_stub_supported)
+#define TYPE_STUB_SUPPORTED(t)   ((t)->stub_is_supported ())
 
 /* * Not textual.  By default, GDB treats all single byte integers as
    characters (or elements of strings) unless this flag is set.  */
@@ -820,7 +820,7 @@ struct main_type
   unsigned int m_flag_prototyped : 1;
   unsigned int m_flag_varargs : 1;
   unsigned int m_flag_vector : 1;
-  unsigned int flag_stub_supported : 1;
+  unsigned int m_flag_stub_supported : 1;
   unsigned int flag_gnu_ifunc : 1;
   unsigned int flag_fixed_instance : 1;
   unsigned int flag_objfile_owned : 1;
@@ -1125,6 +1125,16 @@ struct type
     this->main_type->m_flag_vector = is_vector;
   }
 
+  bool stub_is_supported () const
+  {
+    return this->main_type->m_flag_stub_supported;
+  }
+
+  void set_stub_is_supported (bool stub_is_supported)
+  {
+    this->main_type->m_flag_stub_supported = stub_is_supported;
+  }
+
   /* * Return the dynamic property of the requested KIND from this type's
      list of dynamic properties.  */
   dynamic_prop *dyn_prop (dynamic_prop_node_kind kind) const;