gdb: add type::name / type::set_name

Add the `name` and `set_name` methods on `struct type`, in order to
remove the `TYPE_NAME` macro.  In this patch, the `TYPE_NAME` macro is
changed to use `type::name`, so all the call sites that are used to set
the type name are changed to use `type::set_name`.  The next patch will
remove `TYPE_NAME` completely.

gdb/ChangeLog:

	* gdbtypes.h (struct type) <name, set_name>: New methods.
	(TYPE_CODE): Use type::name.  Change all call sites used to set
	the name to use type::set_name instead.
This commit is contained in:
Simon Marchi
2020-05-16 12:15:54 -04:00
parent 2dab0c7ba0
commit d0e39ea27c
21 changed files with 114 additions and 99 deletions

View File

@@ -889,6 +889,18 @@ struct type
this->main_type->code = code;
}
/* Get the name of this type. */
const char *name () const
{
return this->main_type->name;
}
/* Set the name of this type. */
void set_name (const char *name)
{
this->main_type->name = name;
}
/* * 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;
@@ -1404,7 +1416,7 @@ extern void allocate_gnat_aux_type (struct type *);
#define TYPE_INSTANCE_FLAGS(thistype) (thistype)->instance_flags
#define TYPE_MAIN_TYPE(thistype) (thistype)->main_type
#define TYPE_NAME(thistype) TYPE_MAIN_TYPE(thistype)->name
#define TYPE_NAME(thistype) ((thistype)->name ())
#define TYPE_TARGET_TYPE(thistype) TYPE_MAIN_TYPE(thistype)->target_type
#define TYPE_POINTER_TYPE(thistype) (thistype)->pointer_type
#define TYPE_REFERENCE_TYPE(thistype) (thistype)->reference_type