From 95051d277ef4d4fb8a1b1eece02412e747fa77f6 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Thu, 19 Feb 2004 22:43:03 +0000 Subject: [PATCH] 2004-02-19 Jeff Johnston * printcmd.c (print_scalar_formatted): Do not check for sizeof type being greater than sizeof of host's LONGEST. Always use unpack_long() unless format 'f' chosen. --- gdb/ChangeLog | 6 ++++++ gdb/printcmd.c | 41 ++--------------------------------------- 2 files changed, 8 insertions(+), 39 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 21d73d8..11368fb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2004-02-19 Jeff Johnston + + * printcmd.c (print_scalar_formatted): Do not check for sizeof + type being greater than sizeof of host's LONGEST. Always use + unpack_long() unless format 'f' chosen. + 2004-02-19 Joel Brobecker Committed by Elena Zannoni diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 62ca095..72da949 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1,7 +1,7 @@ /* Print values for GNU debugger GDB. Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, - 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software + 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -350,44 +350,7 @@ print_scalar_formatted (void *valaddr, struct type *type, int format, int size, LONGEST val_long; unsigned int len = TYPE_LENGTH (type); - if (len > sizeof (LONGEST) - && (format == 't' - || format == 'c' - || format == 'o' - || format == 'u' - || format == 'd' - || format == 'x')) - { - if (!TYPE_UNSIGNED (type) - || !extract_long_unsigned_integer (valaddr, len, &val_long)) - { - /* We can't print it normally, but we can print it in hex. - Printing it in the wrong radix is more useful than saying - "use /x, you dummy". */ - /* FIXME: we could also do octal or binary if that was the - desired format. */ - /* FIXME: we should be using the size field to give us a - minimum field width to print. */ - - if (format == 'o') - print_octal_chars (stream, valaddr, len); - else if (format == 'd') - print_decimal_chars (stream, valaddr, len); - else if (format == 't') - print_binary_chars (stream, valaddr, len); - else - /* replace with call to print_hex_chars? Looks - like val_print_type_code_int is redoing - work. - edie */ - - val_print_type_code_int (type, valaddr, stream); - - return; - } - - /* If we get here, extract_long_unsigned_integer set val_long. */ - } - else if (format != 'f') + if (format != 'f') val_long = unpack_long (type, valaddr); /* If the value is a pointer, and pointers and addresses are not the -- 2.7.4