mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
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
This commit is contained in:

committed by
Simon Marchi

parent
3b606f384d
commit
39498edbc8
@ -1,3 +1,9 @@
|
|||||||
|
2020-07-12 Simon Marchi <simon.marchi@efficios.com>
|
||||||
|
|
||||||
|
* 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 <simon.marchi@efficios.com>
|
2020-07-12 Simon Marchi <simon.marchi@efficios.com>
|
||||||
|
|
||||||
* gdbtypes.h (TYPE_LOW_BOUND_KIND,
|
* gdbtypes.h (TYPE_LOW_BOUND_KIND,
|
||||||
|
@ -192,7 +192,7 @@ c_number_of_children (const struct varobj *var)
|
|||||||
{
|
{
|
||||||
case TYPE_CODE_ARRAY:
|
case TYPE_CODE_ARRAY:
|
||||||
if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (target) > 0
|
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);
|
children = TYPE_LENGTH (type) / TYPE_LENGTH (target);
|
||||||
else
|
else
|
||||||
/* If we don't know how many elements there are, don't display
|
/* If we don't know how many elements there are, don't display
|
||||||
|
@ -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
|
/* Make sure that, if we have an assumed size array, we
|
||||||
print out a warning and print the upperbound as '*'. */
|
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, "*");
|
fprintf_filtered (stream, "*");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -408,7 +408,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
|||||||
case TYPE_CODE_STRING:
|
case TYPE_CODE_STRING:
|
||||||
/* Strings may have dynamic upperbounds (lengths) like arrays. */
|
/* 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*(*)");
|
fprintfi_filtered (level, stream, "character*(*)");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
|
|||||||
LONGEST
|
LONGEST
|
||||||
f77_get_lowerbound (struct type *type)
|
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"));
|
error (_("Lower bound may not be '*' in F77"));
|
||||||
|
|
||||||
return TYPE_ARRAY_LOWER_BOUND_VALUE (type);
|
return TYPE_ARRAY_LOWER_BOUND_VALUE (type);
|
||||||
@ -55,7 +55,7 @@ f77_get_lowerbound (struct type *type)
|
|||||||
LONGEST
|
LONGEST
|
||||||
f77_get_upperbound (struct type *type)
|
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
|
/* We have an assumed size array on our hands. Assume that
|
||||||
upper_bound == lower_bound so that we show at least 1 element.
|
upper_bound == lower_bound so that we show at least 1 element.
|
||||||
|
@ -1628,11 +1628,6 @@ extern bool set_type_align (struct type *, ULONGEST);
|
|||||||
/* Accessors for struct range_bounds data attached to an array type's
|
/* Accessors for struct range_bounds data attached to an array type's
|
||||||
index type. */
|
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) \
|
#define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
|
||||||
((arraytype)->index_type ()->bounds ()->high.const_val ())
|
((arraytype)->index_type ()->bounds ()->high.const_val ())
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ static void m2_array (struct type *type, struct ui_file *stream,
|
|||||||
{
|
{
|
||||||
fprintf_filtered (stream, "ARRAY [");
|
fprintf_filtered (stream, "ARRAY [");
|
||||||
if (TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0
|
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)
|
if (type->index_type () != 0)
|
||||||
{
|
{
|
||||||
|
@ -274,7 +274,7 @@ pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
|
|||||||
fprintf_filtered (stream, "(");
|
fprintf_filtered (stream, "(");
|
||||||
fprintf_filtered (stream, "array ");
|
fprintf_filtered (stream, "array ");
|
||||||
if (TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0
|
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] ",
|
fprintf_filtered (stream, "[%s..%s] ",
|
||||||
plongest (TYPE_ARRAY_LOWER_BOUND_VALUE (type)),
|
plongest (TYPE_ARRAY_LOWER_BOUND_VALUE (type)),
|
||||||
plongest (TYPE_ARRAY_UPPER_BOUND_VALUE (type)));
|
plongest (TYPE_ARRAY_UPPER_BOUND_VALUE (type)));
|
||||||
|
@ -200,12 +200,13 @@ value_subscripted_rvalue (struct value *array, LONGEST index, LONGEST lowerbound
|
|||||||
}
|
}
|
||||||
|
|
||||||
LONGEST elt_offs = elt_size * (index - 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
|
if (index < lowerbound
|
||||||
|| (!TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)
|
|| (!array_upper_bound_undefined
|
||||||
&& elt_offs >= type_length_units (array_type))
|
&& elt_offs >= type_length_units (array_type))
|
||||||
|| (VALUE_LVAL (array) != lval_memory
|
|| (VALUE_LVAL (array) != lval_memory && array_upper_bound_undefined))
|
||||||
&& TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (array_type)))
|
|
||||||
{
|
{
|
||||||
if (type_not_associated (array_type))
|
if (type_not_associated (array_type))
|
||||||
error (_("no such vector element (vector not associated)"));
|
error (_("no such vector element (vector not associated)"));
|
||||||
|
@ -388,7 +388,8 @@ value_cast (struct type *type, struct value *arg2)
|
|||||||
struct type *element_type = TYPE_TARGET_TYPE (type);
|
struct type *element_type = TYPE_TARGET_TYPE (type);
|
||||||
unsigned element_length = TYPE_LENGTH (check_typedef (element_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 ();
|
struct type *range_type = type->index_type ();
|
||||||
int val_length = TYPE_LENGTH (type2);
|
int val_length = TYPE_LENGTH (type2);
|
||||||
|
Reference in New Issue
Block a user