* valprint.c (val_print_array_elements): Check array size before

computing its low bound. If zero, then use a default bound of zero.
This commit is contained in:
Joel Brobecker 2005-10-10 01:03:59 +00:00
parent ad5da28ce6
commit 168de233a7
2 changed files with 14 additions and 7 deletions

View File

@ -1,3 +1,8 @@
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

View File

@ -959,19 +959,21 @@ val_print_array_elements (struct type *type, const gdb_byte *valaddr,
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++)