merge from gcc
[deliverable/binutils-gdb.git] / gdb / valprint.c
index 39cf04c7173d62eb299314c578ba34aec359e2a0..0aaf8f5dafbebff66bb4ee87a8dbe1f7ae9b4933 100644 (file)
@@ -1,7 +1,8 @@
 /* Print values for GDB, the GNU debugger.
-   Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-   1997, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+
+   Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
+   1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation,
+   Inc.
 
    This file is part of GDB.
 
@@ -28,7 +29,6 @@
 #include "gdbcore.h"
 #include "gdbcmd.h"
 #include "target.h"
-#include "obstack.h"
 #include "language.h"
 #include "annotate.h"
 #include "valprint.h"
@@ -205,12 +205,8 @@ val_print_type_code_int (struct type *type, char *valaddr,
     }
   else
     {
-#ifdef PRINT_TYPELESS_INTEGER
-      PRINT_TYPELESS_INTEGER (stream, type, unpack_long (type, valaddr));
-#else
       print_longest (stream, TYPE_UNSIGNED (type) ? 'u' : 'd', 0,
                     unpack_long (type, valaddr));
-#endif
     }
 }
 
@@ -332,7 +328,7 @@ print_longest (struct ui_file *stream, int format, int use_local,
       fprintf_filtered (stream,
                        use_local ? local_decimal_format_custom ("ll")
                        : "%lld",
-                       val_long);
+                       (long long) val_long);
       break;
     case 'u':
       fprintf_filtered (stream, "%llu", (long long) val_long);
@@ -341,13 +337,13 @@ print_longest (struct ui_file *stream, int format, int use_local,
       fprintf_filtered (stream,
                        use_local ? local_hex_format_custom ("ll")
                        : "%llx",
-                       val_long);
+                       (unsigned long long) val_long);
       break;
     case 'o':
       fprintf_filtered (stream,
                        use_local ? local_octal_format_custom ("ll")
                        : "%llo",
-                       val_long);
+                       (unsigned long long) val_long);
       break;
     case 'b':
       fprintf_filtered (stream, local_hex_format_custom ("02ll"), val_long);
@@ -414,109 +410,6 @@ print_longest (struct ui_file *stream, int format, int use_local,
 #endif /* CC_HAS_LONG_LONG || PRINTF_HAS_LONG_LONG */
 }
 
-#if 0
-void
-strcat_longest (int format, int use_local, LONGEST val_long, char *buf,
-               int buflen)
-{
-/* FIXME: Use buflen to avoid buffer overflow.  */
-#if defined (CC_HAS_LONG_LONG) && !defined (PRINTF_HAS_LONG_LONG)
-  long vtop, vbot;
-
-  vtop = val_long >> (sizeof (long) * HOST_CHAR_BIT);
-  vbot = (long) val_long;
-
-  if ((format == 'd' && (val_long < INT_MIN || val_long > INT_MAX))
-      || ((format == 'u' || format == 'x') && (unsigned long long) val_long > UINT_MAX))
-    {
-      sprintf (buf, "0x%lx%08lx", vtop, vbot);
-      return;
-    }
-#endif
-
-#ifdef PRINTF_HAS_LONG_LONG
-  switch (format)
-    {
-    case 'd':
-      sprintf (buf,
-              (use_local ? local_decimal_format_custom ("ll") : "%lld"),
-              val_long);
-      break;
-    case 'u':
-      sprintf (buf, "%llu", val_long);
-      break;
-    case 'x':
-      sprintf (buf,
-              (use_local ? local_hex_format_custom ("ll") : "%llx"),
-
-              val_long);
-      break;
-    case 'o':
-      sprintf (buf,
-              (use_local ? local_octal_format_custom ("ll") : "%llo"),
-              val_long);
-      break;
-    case 'b':
-      sprintf (buf, local_hex_format_custom ("02ll"), val_long);
-      break;
-    case 'h':
-      sprintf (buf, local_hex_format_custom ("04ll"), val_long);
-      break;
-    case 'w':
-      sprintf (buf, local_hex_format_custom ("08ll"), val_long);
-      break;
-    case 'g':
-      sprintf (buf, local_hex_format_custom ("016ll"), val_long);
-      break;
-    default:
-      internal_error (__FILE__, __LINE__, "failed internal consistency check");
-    }
-#else /* !PRINTF_HAS_LONG_LONG */
-  /* In the following it is important to coerce (val_long) to a long. It does
-     nothing if !LONG_LONG, but it will chop off the top half (which we know
-     we can ignore) if the host supports long longs.  */
-
-  switch (format)
-    {
-    case 'd':
-      sprintf (buf, (use_local ? local_decimal_format_custom ("l") : "%ld"),
-              ((long) val_long));
-      break;
-    case 'u':
-      sprintf (buf, "%lu", ((unsigned long) val_long));
-      break;
-    case 'x':
-      sprintf (buf, (use_local ? local_hex_format_custom ("l") : "%lx"),
-              ((long) val_long));
-      break;
-    case 'o':
-      sprintf (buf, (use_local ? local_octal_format_custom ("l") : "%lo"),
-              ((long) val_long));
-      break;
-    case 'b':
-      sprintf (buf, local_hex_format_custom ("02l"),
-              ((long) val_long));
-      break;
-    case 'h':
-      sprintf (buf, local_hex_format_custom ("04l"),
-              ((long) val_long));
-      break;
-    case 'w':
-      sprintf (buf, local_hex_format_custom ("08l"),
-              ((long) val_long));
-      break;
-    case 'g':
-      sprintf (buf, local_hex_format_custom ("016l"),
-              ((long) val_long));
-      break;
-    default:
-      internal_error (__FILE__, __LINE__, "failed internal consistency check");
-    }
-
-#endif /* !PRINTF_HAS_LONG_LONG */
-}
-#endif
-
 /* This used to be a macro, but I don't think it is called often enough
    to merit such treatment.  */
 /* Convert a LONGEST to an int.  This is used in contexts (e.g. number of
@@ -559,9 +452,9 @@ print_floating (char *valaddr, struct type *type, struct ui_file *stream)
       if (floatformat_is_negative (fmt, valaddr))
        fprintf_filtered (stream, "-");
       fprintf_filtered (stream, "nan(");
-      fprintf_filtered (stream, local_hex_format_prefix ());
-      fprintf_filtered (stream, floatformat_mantissa (fmt, valaddr));
-      fprintf_filtered (stream, local_hex_format_suffix ());
+      fputs_filtered (local_hex_format_prefix (), stream);
+      fputs_filtered (floatformat_mantissa (fmt, valaddr), stream);
+      fputs_filtered (local_hex_format_suffix (), stream);
       fprintf_filtered (stream, ")");
       return;
     }
@@ -622,7 +515,7 @@ print_binary_chars (struct ui_file *stream, unsigned char *valaddr,
 
   /* FIXME: We should be not printing leading zeroes in most cases.  */
 
-  fprintf_filtered (stream, local_binary_format_prefix ());
+  fputs_filtered (local_binary_format_prefix (), stream);
   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
     {
       for (p = valaddr;
@@ -660,7 +553,7 @@ print_binary_chars (struct ui_file *stream, unsigned char *valaddr,
            }
        }
     }
-  fprintf_filtered (stream, local_binary_format_suffix ());
+  fputs_filtered (local_binary_format_suffix (), stream);
 }
 
 /* VALADDR points to an integer of LEN bytes.
@@ -709,7 +602,7 @@ print_octal_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
   cycle = (len * BITS_IN_BYTES) % BITS_IN_OCTAL;
   carry = 0;
 
-  fprintf_filtered (stream, local_octal_format_prefix ());
+  fputs_filtered (local_octal_format_prefix (), stream);
   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
     {
       for (p = valaddr;
@@ -808,7 +701,7 @@ print_octal_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
        }
     }
 
-  fprintf_filtered (stream, local_octal_format_suffix ());
+  fputs_filtered (local_octal_format_suffix (), stream);
 }
 
 /* VALADDR points to an integer of LEN bytes.
@@ -851,7 +744,7 @@ print_decimal_chars (struct ui_file *stream, unsigned char *valaddr,
       digits[i] = 0;
     }
 
-  fprintf_filtered (stream, local_decimal_format_prefix ());
+  fputs_filtered (local_decimal_format_prefix (), stream);
 
   /* Ok, we have an unknown number of bytes of data to be printed in
    * decimal.
@@ -948,7 +841,7 @@ print_decimal_chars (struct ui_file *stream, unsigned char *valaddr,
     }
   xfree (digits);
 
-  fprintf_filtered (stream, local_decimal_format_suffix ());
+  fputs_filtered (local_decimal_format_suffix (), stream);
 }
 
 /* VALADDR points to an integer of LEN bytes.  Print it in hex on stream.  */
@@ -960,7 +853,7 @@ print_hex_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
 
   /* FIXME: We should be not printing leading zeroes in most cases.  */
 
-  fprintf_filtered (stream, local_hex_format_prefix ());
+  fputs_filtered (local_hex_format_prefix (), stream);
   if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
     {
       for (p = valaddr;
@@ -979,7 +872,7 @@ print_hex_chars (struct ui_file *stream, unsigned char *valaddr, unsigned len)
          fprintf_filtered (stream, "%02x", *p);
        }
     }
-  fprintf_filtered (stream, local_hex_format_suffix ());
+  fputs_filtered (local_hex_format_suffix (), stream);
 }
 
 /*  Called by various <lang>_val_print routines to print elements of an
@@ -1290,14 +1183,12 @@ val_print_string (CORE_ADDR addr, int len, int width, struct ui_file *stream)
    knows what they really did here.  Radix setting is confusing, e.g.
    setting the input radix to "10" never changes it!  */
 
-/* ARGSUSED */
 static void
 set_input_radix (char *args, int from_tty, struct cmd_list_element *c)
 {
   set_input_radix_1 (from_tty, input_radix);
 }
 
-/* ARGSUSED */
 static void
 set_input_radix_1 (int from_tty, unsigned radix)
 {
@@ -1323,7 +1214,6 @@ set_input_radix_1 (int from_tty, unsigned radix)
     }
 }
 
-/* ARGSUSED */
 static void
 set_output_radix (char *args, int from_tty, struct cmd_list_element *c)
 {
@@ -1385,7 +1275,6 @@ set_radix (char *arg, int from_tty)
 
 /* Show both the input and output radices. */
 
-/*ARGSUSED */
 static void
 show_radix (char *arg, int from_tty)
 {
@@ -1407,7 +1296,6 @@ show_radix (char *arg, int from_tty)
 }
 \f
 
-/*ARGSUSED */
 static void
 set_print (char *arg, int from_tty)
 {
@@ -1416,7 +1304,6 @@ set_print (char *arg, int from_tty)
   help_list (setprintlist, "set print ", -1, gdb_stdout);
 }
 
-/*ARGSUSED */
 static void
 show_print (char *args, int from_tty)
 {
This page took 0.02762 seconds and 4 git commands to generate.