gdb: add type::stub_is_supported / type::set_stub_is_supported

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
This commit is contained in:
Simon Marchi 2020-09-14 11:08:03 -04:00
parent bd63c87008
commit 9baccff6ae
3 changed files with 19 additions and 3 deletions

View 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;