summaryrefslogtreecommitdiff
path: root/gdb/ada-valprint.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ada-valprint.c')
-rw-r--r--gdb/ada-valprint.c7
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;
}