Make range types inherit signed-ness from base type
I ran across this comment in valprint.c: /* FIXME: create_static_range_type does not set the unsigned bit in a range type (I think it probably should copy it from the target type), so we won't print values which are too large to fit in a signed integer correctly. */ It seems to me that a range type ought to inherit its signed-ness from the underlying type, so this patch implements this change, and removes the comment. (It was also copied into m2-valprint.c.) I also remove the comment about handling ranges of enums, because I think that comment is incorrect. gdb/ChangeLog 2020-10-17 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print): Remove comment. * m2-valprint.c (m2_value_print_inner): Remove comment. * gdbtypes.c (create_range_type): Set TYPE_UNSIGNED from base type.
This commit is contained in:
parent
9717970a4e
commit
cfabbd351a
4 changed files with 8 additions and 27 deletions
|
@ -950,16 +950,7 @@ create_range_type (struct type *result_type, struct type *index_type,
|
|||
|
||||
result_type->set_bounds (bounds);
|
||||
|
||||
if (low_bound->kind () == PROP_CONST && low_bound->const_val () >= 0)
|
||||
result_type->set_is_unsigned (true);
|
||||
|
||||
/* Ada allows the declaration of range types whose upper bound is
|
||||
less than the lower bound, so checking the lower bound is not
|
||||
enough. Make sure we do not mark a range type whose upper bound
|
||||
is negative as unsigned. */
|
||||
if (high_bound->kind () == PROP_CONST && high_bound->const_val () < 0)
|
||||
result_type->set_is_unsigned (false);
|
||||
|
||||
result_type->set_is_unsigned (index_type->is_unsigned ());
|
||||
result_type->set_endianity_is_not_default
|
||||
(index_type->endianity_is_not_default ());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue