From 168de233a78e1a72a4415c3618dba3ff2428f850 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Mon, 10 Oct 2005 01:03:59 +0000 Subject: [PATCH] * valprint.c (val_print_array_elements): Check array size before computing its low bound. If zero, then use a default bound of zero. --- gdb/ChangeLog | 5 +++++ gdb/valprint.c | 16 +++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2cfa2b59540..c0f89fd8107 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2005-10-05 Joel Brobecker + + * 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 PR 1659 diff --git a/gdb/valprint.c b/gdb/valprint.c index 60149acaedf..3183a8db545 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++) -- 2.30.2