diff options
Diffstat (limited to 'gdb/ada-valprint.c')
-rw-r--r-- | gdb/ada-valprint.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c index 720854e2cad..ba12a7842e0 100644 --- a/gdb/ada-valprint.c +++ b/gdb/ada-valprint.c @@ -129,13 +129,11 @@ val_print_packed_array_elements (struct type *type, const gdb_byte *valaddr, unsigned int things_printed = 0; unsigned len; struct type *elttype, *index_type; - unsigned eltlen; unsigned long bitsize = TYPE_FIELD_BITSIZE (type, 0); struct value *mark = value_mark (); LONGEST low = 0; elttype = TYPE_TARGET_TYPE (type); - eltlen = TYPE_LENGTH (check_typedef (elttype)); index_type = TYPE_INDEX_TYPE (type); { @@ -184,9 +182,12 @@ val_print_packed_array_elements (struct type *type, const gdb_byte *valaddr, (i * bitsize) / HOST_CHAR_BIT, (i * bitsize) % HOST_CHAR_BIT, bitsize, elttype); + if (TYPE_LENGTH (check_typedef (value_type (v0))) + != TYPE_LENGTH (check_typedef (value_type (v1)))) + break; if (!value_contents_eq (v0, value_embedded_offset (v0), v1, value_embedded_offset (v1), - eltlen)) + TYPE_LENGTH (check_typedef (value_type (v0))))) break; } |