* doublest.h: Conditionalize DOUBLEST on PRINTF_HAS_LONG_DOUBLE
authorDaniel Jacobowitz <drow@false.org>
Thu, 23 Feb 2006 18:43:41 +0000 (18:43 +0000)
committerDaniel Jacobowitz <drow@false.org>
Thu, 23 Feb 2006 18:43:41 +0000 (18:43 +0000)
also.
(DOUBLEST_FORMAT): Rename to DOUBLEST_PRINT_FORMAT.
(DOUBLEST_SCAN_FORMAT): New.
* ada-lex.l (PRINTF_HAS_LONG_DOUBLE): Remove redefinitions.
(processReal): Use DOUBLEST_SCAN_FORMAT.
* c-exp.y (parse_number): Likewise.
* jv-exp.y (parse_number): Likewise.
* objc-exp.y (parse_number): Likewise.
* p-exp.y (parse_number): Likewise.

gdb/ChangeLog
gdb/ada-lex.l
gdb/c-exp.y
gdb/doublest.h
gdb/jv-exp.y
gdb/objc-exp.y
gdb/p-exp.y

index 2080adb64dc716e05f6766f7188052954c69d9af..1d5c6a18a0dbea77621e38d24ed0628571a99a1a 100644 (file)
@@ -1,3 +1,16 @@
+2006-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * doublest.h: Conditionalize DOUBLEST on PRINTF_HAS_LONG_DOUBLE
+       also.
+       (DOUBLEST_FORMAT): Rename to DOUBLEST_PRINT_FORMAT.
+       (DOUBLEST_SCAN_FORMAT): New.
+       * ada-lex.l (PRINTF_HAS_LONG_DOUBLE): Remove redefinitions.
+       (processReal): Use DOUBLEST_SCAN_FORMAT.
+       * c-exp.y (parse_number): Likewise.
+       * jv-exp.y (parse_number): Likewise.
+       * objc-exp.y (parse_number): Likewise.
+       * p-exp.y (parse_number): Likewise.
+
 2006-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * event-top.c (async_do_nothing, async_disconnect)
index 156e0b8d76354315269e8dabda6c00cbe00b1011..b25264cadadced26c4d9fd28813dcc737497e8be 100644 (file)
@@ -432,26 +432,10 @@ processInt (const char *base0, const char *num0, const char *exp0)
   return INT;
 }
 
-#if defined (PRINTF_HAS_LONG_DOUBLE)
-#  undef PRINTF_HAS_LONG_DOUBLE
-#  define PRINTF_HAS_LONG_DOUBLE 1
-#else
-#  define PRINTF_HAS_LONG_DOUBLE 0
-#endif
-
 static int
 processReal (const char *num0)
 {
-#if defined (PRINTF_HAS_LONG_DOUBLE)
-  if (sizeof (DOUBLEST) > sizeof (double))
-    sscanf (num0, "%Lg", &yylval.typed_val_float.dval);
-  else
-#endif
-    {
-      double temp;
-      sscanf (num0, "%lg", &temp);
-      yylval.typed_val_float.dval = temp;
-    }
+  sscanf (num0, DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval);
 
   yylval.typed_val_float.type = type_float ();
   if (sizeof(DOUBLEST) >= TARGET_DOUBLE_BIT / TARGET_CHAR_BIT)
index e197227583d7fd7bb941ebd4e8cf41ab808324f0..1955fc0adec1637483a4905928f052dfb30a90a4 100644 (file)
@@ -1080,7 +1080,7 @@ parse_number (p, len, parsed_float, putithere)
       char saved_char = p[len];
 
       p[len] = 0;      /* null-terminate the token */
-      num = sscanf (p, DOUBLEST_FORMAT "%s",
+      num = sscanf (p, DOUBLEST_SCAN_FORMAT "%s",
                    &putithere->typed_val_float.dval, s);
       p[len] = saved_char;     /* restore the input stream */
 
index a035b7d79d0daac2f3f8141fe6bbacb4c26e0f5f..1ebefd813082f05efa913c348c20061335105115 100644 (file)
@@ -48,15 +48,20 @@ struct floatformat;
    host's `long double'.  In general, we'll probably reduce the precision of
    any such values and print a warning.  */
 
-#if defined HAVE_LONG_DOUBLE && defined SCANF_HAS_LONG_DOUBLE
+#if (defined HAVE_LONG_DOUBLE && defined PRINTF_HAS_LONG_DOUBLE \
+     && defined SCANF_HAS_LONG_DOUBLE)
 typedef long double DOUBLEST;
-# define DOUBLEST_FORMAT "%Lg"
+# define DOUBLEST_PRINT_FORMAT "%Lg"
+# define DOUBLEST_SCAN_FORMAT "%Lg"
 #else
 typedef double DOUBLEST;
-# define DOUBLEST_FORMAT "%g"
+# define DOUBLEST_PRINT_FORMAT "%g"
+# define DOUBLEST_SCAN_FORMAT "%lg"
 /* If we can't scan or print long double, we don't want to use it
    anywhere.  */
 # undef HAVE_LONG_DOUBLE
+# undef PRINTF_HAS_LONG_DOUBLE
+# undef SCANF_HAS_LONG_DOUBLE
 #endif
 
 extern void floatformat_to_doublest (const struct floatformat *,
index 70f94caaed4bf59b263c5d38f6ace4c93d13858b..801737279b84453a13859023b2c34be12e645a51 100644 (file)
@@ -713,7 +713,7 @@ parse_number (p, len, parsed_float, putithere)
       char saved_char = p[len];
 
       p[len] = 0;      /* null-terminate the token */
-      num = sscanf (p, DOUBLEST_FORMAT "%c",
+      num = sscanf (p, DOUBLEST_SCAN_FORMAT "%c",
                    &putithere->typed_val_float.dval, &c);
       p[len] = saved_char;     /* restore the input stream */
       if (num != 1)            /* check scanf found ONLY a float ... */
index 52ae8c2b58d4a7f8659b8bcbe5574f05ef46717a..7b0ca39939d708833680fef7350608d841ee2d7b 100644 (file)
@@ -1025,7 +1025,7 @@ parse_number (p, len, parsed_float, putithere)
 
       /* It's a float since it contains a point or an exponent.  */
 
-      sscanf (p, DOUBLEST_FORMAT "%c",
+      sscanf (p, DOUBLEST_SCAN_FORMAT "%c",
              &putithere->typed_val_float.dval, &c);
 
       /* See if it has `f' or `l' suffix (float or long double).  */
index 08853d50b18d384eedaa3a19fb4c5273c439a0a3..e095a35b99cde02e5c6f8c3cd05564a2d0938884 100644 (file)
@@ -799,7 +799,7 @@ parse_number (p, len, parsed_float, putithere)
       char saved_char = p[len];
 
       p[len] = 0;      /* null-terminate the token */
-      num = sscanf (p, DOUBLEST_FORMAT "%c",
+      num = sscanf (p, DOUBLEST_SCAN_FORMAT "%c",
                    &putithere->typed_val_float.dval, &c);
       p[len] = saved_char;     /* restore the input stream */
       if (num != 1)            /* check scanf found ONLY a float ... */