diff options
author | Joel Brobecker <brobecker@gnat.com> | 2005-10-10 01:03:59 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2005-10-10 01:03:59 +0000 |
commit | 168de233a78e1a72a4415c3618dba3ff2428f850 (patch) | |
tree | e8ce08c633d0fc1d79be011fa6d8cf42e124c235 /gdb/valprint.c | |
parent | ad5da28ce619a3843bc5b290645f1bbf334e0674 (diff) | |
download | gdb-168de233a78e1a72a4415c3618dba3ff2428f850.zip gdb-168de233a78e1a72a4415c3618dba3ff2428f850.tar.gz gdb-168de233a78e1a72a4415c3618dba3ff2428f850.tar.bz2 |
* valprint.c (val_print_array_elements): Check array size before
computing its low bound. If zero, then use a default bound of zero.
Diffstat (limited to 'gdb/valprint.c')
-rw-r--r-- | gdb/valprint.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gdb/valprint.c b/gdb/valprint.c index 60149ac..3183a8d 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -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++) |