From 39498edbc850409c332dd5be60a82d1bf704bc8f Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Sun, 12 Jul 2020 22:58:52 -0400 Subject: [PATCH] gdb: remove TYPE_ARRAY_{UPPER,LOWER}_BOUND_IS_UNDEFINED Remove the macros, use the various equivalent getters instead. gdb/ChangeLog: * gdbtypes.h (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED, TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED): Remove. Update all callers to use the equivalent accessor methods instead. Change-Id: Ifb4c36f440b82533bde5d15a5cbb2fc91f467292 --- gdb/ChangeLog | 6 ++++++ gdb/c-varobj.c | 2 +- gdb/f-typeprint.c | 4 ++-- gdb/f-valprint.c | 4 ++-- gdb/gdbtypes.h | 5 ----- gdb/m2-typeprint.c | 2 +- gdb/p-typeprint.c | 2 +- gdb/valarith.c | 9 +++++---- gdb/valops.c | 3 ++- 9 files changed, 20 insertions(+), 17 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f257a8f10a9..e17a61ee063 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-07-12 Simon Marchi + + * gdbtypes.h (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED, + TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED): Remove. Update all + callers to use the equivalent accessor methods instead. + 2020-07-12 Simon Marchi * gdbtypes.h (TYPE_LOW_BOUND_KIND, diff --git a/gdb/c-varobj.c b/gdb/c-varobj.c index a0b84936b02..2bcfe8672eb 100644 --- a/gdb/c-varobj.c +++ b/gdb/c-varobj.c @@ -192,7 +192,7 @@ c_number_of_children (const struct varobj *var) { case TYPE_CODE_ARRAY: if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (target) > 0 - && !TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + && (type->index_type ()->bounds ()->high.kind () != PROP_UNDEFINED)) children = TYPE_LENGTH (type) / TYPE_LENGTH (target); else /* If we don't know how many elements there are, don't display diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c index f09a4b1f21b..df83a481386 100644 --- a/gdb/f-typeprint.c +++ b/gdb/f-typeprint.c @@ -223,7 +223,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, /* Make sure that, if we have an assumed size array, we print out a warning and print the upperbound as '*'. */ - if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + if (type->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED) fprintf_filtered (stream, "*"); else { @@ -408,7 +408,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, case TYPE_CODE_STRING: /* Strings may have dynamic upperbounds (lengths) like arrays. */ - if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + if (type->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED) fprintfi_filtered (level, stream, "character*(*)"); else { diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index 6ed1c340c76..05f98bc3505 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -46,7 +46,7 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2]; LONGEST f77_get_lowerbound (struct type *type) { - if (TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED (type)) + if (type->index_type ()->bounds ()->low.kind () == PROP_UNDEFINED) error (_("Lower bound may not be '*' in F77")); return TYPE_ARRAY_LOWER_BOUND_VALUE (type); @@ -55,7 +55,7 @@ f77_get_lowerbound (struct type *type) LONGEST f77_get_upperbound (struct type *type) { - if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + if (type->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED) { /* We have an assumed size array on our hands. Assume that upper_bound == lower_bound so that we show at least 1 element. diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 9be97054cfa..83432b6fc77 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -1628,11 +1628,6 @@ extern bool set_type_align (struct type *, ULONGEST); /* Accessors for struct range_bounds data attached to an array type's index type. */ -#define TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED(arraytype) \ - ((arraytype)->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED) -#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ - ((arraytype)->index_type ()->bounds ()->low.kind () == PROP_UNDEFINED) - #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \ ((arraytype)->index_type ()->bounds ()->high.const_val ()) diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c index 39f0e8e2961..474e58725c7 100644 --- a/gdb/m2-typeprint.c +++ b/gdb/m2-typeprint.c @@ -226,7 +226,7 @@ static void m2_array (struct type *type, struct ui_file *stream, { fprintf_filtered (stream, "ARRAY ["); if (TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0 - && !TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + && type->index_type ()->bounds ()->high.kind () != PROP_UNDEFINED) { if (type->index_type () != 0) { diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c index c453df4b003..5a32667603b 100644 --- a/gdb/p-typeprint.c +++ b/gdb/p-typeprint.c @@ -274,7 +274,7 @@ pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream, fprintf_filtered (stream, "("); fprintf_filtered (stream, "array "); if (TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0 - && !TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + && type->index_type ()->bounds ()->high.kind () != PROP_UNDEFINED) fprintf_filtered (stream, "[%s..%s] ", plongest (TYPE_ARRAY_LOWER_BOUND_VALUE (type)), plongest (TYPE_ARRAY_UPPER_BOUND_VALUE (type))); diff --git a/gdb/valarith.c b/gdb/valarith.c index a5779a3aff9..0b1f43f2e00 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -200,12 +200,13 @@ value_subscripted_rvalue (struct value *array, LONGEST index, LONGEST lowerbound } LONGEST elt_offs = elt_size * (index - lowerbound); + bool array_upper_bound_undefined + = array_type->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED; if (index < lowerbound - || (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type) - && elt_offs >= type_length_units (array_type)) - || (VALUE_LVAL (array) != lval_memory - && TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type))) + || (!array_upper_bound_undefined + && elt_offs >= type_length_units (array_type)) + || (VALUE_LVAL (array) != lval_memory && array_upper_bound_undefined)) { if (type_not_associated (array_type)) error (_("no such vector element (vector not associated)")); diff --git a/gdb/valops.c b/gdb/valops.c index afdb429dc37..cfa0f5415d2 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -388,7 +388,8 @@ value_cast (struct type *type, struct value *arg2) struct type *element_type = TYPE_TARGET_TYPE (type); unsigned element_length = TYPE_LENGTH (check_typedef (element_type)); - if (element_length > 0 && TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) + if (element_length > 0 + && type->index_type ()->bounds ()->high.kind () == PROP_UNDEFINED) { struct type *range_type = type->index_type (); int val_length = TYPE_LENGTH (type2); -- 2.30.2