diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 2 | ||||
-rw-r--r-- | gdb/gdbtypes.h | 12 |
3 files changed, 19 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0288053..6870b2c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-06-08 Simon Marchi <simon.marchi@efficios.com> + + * gdbtypes.h (struct type) <index_type, set_index_type>: New + methods. + (TYPE_INDEX_TYPE): Use type::index_type. + * gdbtypes.c (create_array_type_with_stride): Likewise. + 2020-06-07 Tom Tromey <tom@tromey.com> * valprint.c (generic_val_print_float): Remove "embedded_offset" diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index fa90bd1..67fd3d2 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1293,7 +1293,7 @@ create_array_type_with_stride (struct type *result_type, result_type->set_num_fields (1); result_type->set_fields ((struct field *) TYPE_ZALLOC (result_type, sizeof (struct field))); - TYPE_INDEX_TYPE (result_type) = range_type; + result_type->set_index_type (range_type); if (byte_stride_prop != NULL) result_type->add_dyn_prop (DYN_PROP_BYTE_STRIDE, *byte_stride_prop); else if (bit_stride > 0) diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 47d79af..0cca0fd 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -933,6 +933,16 @@ struct type this->main_type->flds_bnds.fields = fields; } + type *index_type () const + { + return this->field (0).type; + } + + void set_index_type (type *index_type) + { + this->field (0).type = index_type; + } + /* * 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; @@ -1482,7 +1492,7 @@ extern unsigned type_align (struct type *); space in struct type. */ extern bool set_type_align (struct type *, ULONGEST); -#define TYPE_INDEX_TYPE(type) TYPE_FIELD_TYPE (type, 0) +#define TYPE_INDEX_TYPE(type) ((type)->index_type ()) #define TYPE_RANGE_DATA(thistype) TYPE_MAIN_TYPE(thistype)->flds_bnds.bounds #define TYPE_LOW_BOUND(range_type) \ TYPE_RANGE_DATA(range_type)->low.data.const_val |