diff options
Diffstat (limited to 'gdb/cp-valprint.c')
-rw-r--r-- | gdb/cp-valprint.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index d264b40..49d71a4 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -564,13 +564,17 @@ void cp_print_class_member (const gdb_byte *valaddr, struct type *type, struct ui_file *stream, char *prefix) { + enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type)); + /* VAL is a byte offset into the structure type DOMAIN. Find the name of the field for that offset and print it. */ struct type *domain = TYPE_DOMAIN_TYPE (type); - LONGEST val = extract_signed_integer (valaddr, TYPE_LENGTH (type)); + LONGEST val; unsigned int fieldno; + val = extract_signed_integer (valaddr, TYPE_LENGTH (type), byte_order); + /* Pointers to data members are usually byte offsets into an object. Because a data member can have offset zero, and a NULL pointer to member must be distinct from any valid non-NULL pointer to |