From: Pierre Muller Date: Thu, 20 May 2010 07:41:40 +0000 (+0000) Subject: * p-valprint.c (pascal_val_print): Call get_array_bounds X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8148cf8d75e7d4f891976b3a6a85a7203f8c65b2;p=binutils-gdb.git * p-valprint.c (pascal_val_print): Call get_array_bounds to obtain the number of elements in an array. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5cba88b8c55..9828c3ae67c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-05-20 Pierre Muller + + * p-valprint.c (pascal_val_print): Call get_array_bounds + to obtain the number of elements in an array. + 2010-05-19 Doug Evans * python.c (gdbpy_print_stack): Ensure output ends with a newline. diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index 5f495b5d2bc..1c2f36d51bb 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -60,6 +60,7 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr, enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); unsigned int i = 0; /* Number of characters printed */ unsigned len; + long low_bound, high_bound; struct type *elttype; unsigned eltlen; int length_pos, length_size, string_pos; @@ -71,11 +72,11 @@ pascal_val_print (struct type *type, const gdb_byte *valaddr, switch (TYPE_CODE (type)) { case TYPE_CODE_ARRAY: - if (TYPE_LENGTH (type) > 0 && TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0) + if (get_array_bounds (type, &low_bound, &high_bound)) { + len = high_bound - low_bound + 1; elttype = check_typedef (TYPE_TARGET_TYPE (type)); eltlen = TYPE_LENGTH (elttype); - len = TYPE_LENGTH (type) / eltlen; if (options->prettyprint_arrays) { print_spaces_filtered (2 + 2 * recurse, stream);