summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2004-02-19 22:43:03 +0000
committerJeff Johnston <jjohnstn@redhat.com>2004-02-19 22:43:03 +0000
commitcb282f7548a17ae1df6c9bbf13436a900f003733 (patch)
treee29f54ce4090c904884d5504b6dc7090f3c84066
parentc24d7236424df9cb0dd20c19c6f6aeee88ec0b87 (diff)
downloadgdb-cb282f7548a17ae1df6c9bbf13436a900f003733.tar.gz
2004-02-19 Jeff Johnston <jjohnstn@redhat.com>
* 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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/printcmd.c41
2 files changed, 8 insertions, 39 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 21d73d8b5c2..11368fb7983 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-19 Jeff Johnston <jjohnstn@redhat.com>
+
+ * 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 <brobecker@gnat.com>
Committed by Elena Zannoni <ezannoni@redhat.com>
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 62ca0956812..72da9495c13 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