gdb: add field::type / field::set_type

Add the `type` and `set_type` methods on `struct field`, in order to
remoremove the `FIELD_TYPE` macro.  In this patch, the `FIELD_TYPE`
macro is changed to use `field::type`, so all the call sites that are
useused to set the field's type are changed to use `field::set_type`.
The next patch will remove `FIELD_TYPE` completely.

Note that because of the name clash between the existing field named
`type` and the new method, I renamed the field `m_type`.  It is not
private per-se, because we can't make `struct field` a non-POD yet, but
it should be considered private anyway (not accessed outside `struct
field`).

gdb/ChangeLog:

	* gdbtypes.h (struct field) <type, set_type>: New methods.
	Rename `type` field to...
	<m_type>: ... this.  Change references throughout to use type or
	set_type methods.
	(FIELD_TYPE): Use field::type.  Change call sites that modify
	the field's type to use field::set_type instead.

Change-Id: Ie21f866e3b7f8a51ea49b722d07d272a724459a0
This commit is contained in:
Simon Marchi 2020-06-08 15:26:04 -04:00
parent 3d967001ec
commit 5d14b6e5d6
16 changed files with 90 additions and 71 deletions

View file

@ -988,7 +988,7 @@ rust_composite_type (struct type *original,
bitpos += TYPE_LENGTH (type1) * TARGET_CHAR_BIT;
FIELD_NAME (*field) = field1;
FIELD_TYPE (*field) = type1;
field->set_type (type1);
++i;
}
if (field2 != NULL)
@ -1008,7 +1008,7 @@ rust_composite_type (struct type *original,
SET_FIELD_BITPOS (*field, bitpos);
FIELD_NAME (*field) = field2;
FIELD_TYPE (*field) = type2;
field->set_type (type2);
++i;
}