From: Daniel Jacobowitz Date: Thu, 23 Feb 2006 18:43:41 +0000 (+0000) Subject: * doublest.h: Conditionalize DOUBLEST on PRINTF_HAS_LONG_DOUBLE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a6205f535ae295e644a1ec53fa130e2785adfb58;p=binutils-gdb.git * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2080adb64dc..1d5c6a18a0d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +2006-02-23 Daniel Jacobowitz + + * 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 * event-top.c (async_do_nothing, async_disconnect) diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 156e0b8d763..b25264cadad 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -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) diff --git a/gdb/c-exp.y b/gdb/c-exp.y index e197227583d..1955fc0adec 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -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 */ diff --git a/gdb/doublest.h b/gdb/doublest.h index a035b7d79d0..1ebefd81308 100644 --- a/gdb/doublest.h +++ b/gdb/doublest.h @@ -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 *, diff --git a/gdb/jv-exp.y b/gdb/jv-exp.y index 70f94caaed4..801737279b8 100644 --- a/gdb/jv-exp.y +++ b/gdb/jv-exp.y @@ -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 ... */ diff --git a/gdb/objc-exp.y b/gdb/objc-exp.y index 52ae8c2b58d..7b0ca39939d 100644 --- a/gdb/objc-exp.y +++ b/gdb/objc-exp.y @@ -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). */ diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 08853d50b18..e095a35b99c 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -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 ... */