+2005-10-05 Joel Brobecker <brobecker@adacore.com>
+
+ * valprint.c (val_print_array_elements): Check array size before
+ computing its low bound. If zero, then use a default bound of zero.
+
2005-10-06 Alan Modra <amodra@bigpond.net.au>
PR 1659
unsigned int rep1;
/* Number of repetitions we have detected so far. */
unsigned int reps;
- long low_bound_index;
-
- if (!get_array_low_bound (type, &low_bound_index))
- {
- warning ("unable to get low bound of array, using zero as default");
- low_bound_index = 0;
- }
+ long low_bound_index = 0;
elttype = TYPE_TARGET_TYPE (type);
eltlen = TYPE_LENGTH (check_typedef (elttype));
len = TYPE_LENGTH (type) / eltlen;
index_type = TYPE_INDEX_TYPE (type);
+ /* Get the array low bound. This only makes sense if the array
+ has one or more element in it. */
+ if (len > 0 && !get_array_low_bound (type, &low_bound_index))
+ {
+ warning ("unable to get low bound of array, using zero as default");
+ low_bound_index = 0;
+ }
+
annotate_array_section_begin (i, elttype);
for (; i < len && things_printed < print_max; i++)