summaryrefslogtreecommitdiff
path: root/gdb/valarith.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2008-12-28 14:14:18 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2008-12-28 14:14:18 +0000
commit43f17405181c357d49d5193f0d16665964e6e5b0 (patch)
tree2308a13d8de3bd650f44e6e09b437599efd8f6ef /gdb/valarith.c
parent4598bfbbd66f2bbd11c1d95e7caf3f7a7a1ed432 (diff)
downloadgdb-43f17405181c357d49d5193f0d16665964e6e5b0.tar.gz
Fix TYPE_HIGH_BOUND for TYPE_CODE_RANGE using arbitrary TYPE_NFIELDS in
preparation for supporting DW_AT_byte_stride. * ada-lang.c (packed_array_type, ada_index_type): Use TYPE_INDEX_TYPE. (ada_array_bound_from_type): Move `index_type' declaration to the function start. New variable `retval'. Return the bounds for TYPE_CODE_RANGE using TYPE_LOW_BOUND and TYPE_HIGH_BOUND. Abort on invalid index type codes. * ada-typeprint.c (print_range): Set `upper_bound' for TYPE_CODE_RANGE now using TYPE_HIGH_BOUND. * ada-valprint.c (val_print_packed_array_elements): Use `index_type'. * eval.c (evaluate_subexp_standard): Use TYPE_INDEX_TYPE. * gdbtypes.c (create_range_type): Use TYPE_LOW_BOUND, TYPE_HIGH_BOUND, refer to the number of fields only through TYPE_NFIELDS. (create_array_type): Use TYPE_INDEX_TYPE. (check_typedef): Use TYPE_INDEX_TYPE, TYPE_LOW_BOUND, TYPE_HIGH_BOUND. * gdbtypes.h (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED) (TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED): Use TYPE_INDEX_TYPE. (TYPE_ARRAY_UPPER_BOUND_VALUE, TYPE_ARRAY_LOWER_BOUND_VALUE): Use TYPE_INDEX_TYPE, TYPE_LOW_BOUND, TYPE_HIGH_BOUND, * hppa-tdep.c (hppa_alignof <TYPE_CODE_ARRAY>): Use TYPE_INDEX_TYPE. * mdebugread.c (parse_type): Use TYPE_LOW_BOUND, TYPE_HIGH_BOUND, * valarith.c (value_bit_index): Use TYPE_INDEX_TYPE.
Diffstat (limited to 'gdb/valarith.c')
-rw-r--r--gdb/valarith.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/valarith.c b/gdb/valarith.c
index 59f67d3ed6f..b192ff95cd5 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -1557,7 +1557,7 @@ value_bit_index (struct type *type, const gdb_byte *valaddr, int index)
LONGEST low_bound, high_bound;
LONGEST word;
unsigned rel_index;
- struct type *range = TYPE_FIELD_TYPE (type, 0);
+ struct type *range = TYPE_INDEX_TYPE (type);
if (get_discrete_bounds (range, &low_bound, &high_bound) < 0)
return -2;
if (index < low_bound || index > high_bound)