From: Jim Blandy Date: Tue, 10 Jul 2001 21:17:49 +0000 (+0000) Subject: * printcmd.c (print_scalar_formatted): If we are printing an X-Git-Tag: gdb_5_1-2001-07-29-branchpoint~240 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef166cf46a1b37daf20f3470f1478b9c1e2ddbc6;p=thirdparty%2Fbinutils-gdb.git * printcmd.c (print_scalar_formatted): If we are printing an address, remember that TARGET_ADDR_BIT is not always equal to TARGET_PTR_BIT. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f439aedfa95..13d66dae7b3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2001-07-10 Jim Blandy + * printcmd.c (print_scalar_formatted): If we are printing an + address, remember that TARGET_ADDR_BIT is not always equal to + TARGET_PTR_BIT. + * valops.c (value_cast): When casting a pointer to an integer, don't convert it to an address. diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 746a0646cc0..63b74649479 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -390,6 +390,12 @@ print_scalar_formatted (char *valaddr, struct type *type, int format, int size, else if (format != 'f') val_long = unpack_long (type, valaddr); + /* If the value is a pointer, and pointers and addresses are not the + same, then at this point, the value's length is TARGET_ADDR_BIT, not + TYPE_LENGTH (type). */ + if (TYPE_CODE (type) == TYPE_CODE_PTR) + len = TARGET_ADDR_BIT; + /* If we are printing it as unsigned, truncate it in case it is actually a negative signed value (e.g. "print/u (short)-1" should print 65535 (if shorts are 16 bits) instead of 4294967295). */