(yylex): Don't warn about floating point out of range if target
floating-point format is IEEE. From-SVN: r4213
This commit is contained in:
parent
9b553fdbd7
commit
6c54821635
14
gcc/c-lex.c
14
gcc/c-lex.c
@ -1486,7 +1486,8 @@ yylex ()
|
|||||||
case 'f': case 'F':
|
case 'f': case 'F':
|
||||||
type = float_type_node;
|
type = float_type_node;
|
||||||
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
||||||
if (REAL_VALUE_ISINF (value) && pedantic)
|
if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT
|
||||||
|
&& REAL_VALUE_ISINF (value) && pedantic)
|
||||||
pedwarn ("floating point number exceeds range of `float'");
|
pedwarn ("floating point number exceeds range of `float'");
|
||||||
garbage_chars = -1;
|
garbage_chars = -1;
|
||||||
break;
|
break;
|
||||||
@ -1494,7 +1495,8 @@ yylex ()
|
|||||||
case 'l': case 'L':
|
case 'l': case 'L':
|
||||||
type = long_double_type_node;
|
type = long_double_type_node;
|
||||||
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
||||||
if (REAL_VALUE_ISINF (value) && pedantic)
|
if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT
|
||||||
|
&& REAL_VALUE_ISINF (value) && pedantic)
|
||||||
pedwarn (
|
pedwarn (
|
||||||
"floating point number exceeds range of `long double'");
|
"floating point number exceeds range of `long double'");
|
||||||
garbage_chars = -1;
|
garbage_chars = -1;
|
||||||
@ -1509,7 +1511,8 @@ yylex ()
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
value = REAL_VALUE_ATOF (token_buffer, TYPE_MODE (type));
|
||||||
if (REAL_VALUE_ISINF (value) && pedantic)
|
if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT
|
||||||
|
&& REAL_VALUE_ISINF (value) && pedantic)
|
||||||
pedwarn ("floating point number exceeds range of `double'");
|
pedwarn ("floating point number exceeds range of `double'");
|
||||||
}
|
}
|
||||||
set_float_handler (NULL_PTR);
|
set_float_handler (NULL_PTR);
|
||||||
@ -1519,8 +1522,9 @@ yylex ()
|
|||||||
{
|
{
|
||||||
/* ERANGE is also reported for underflow,
|
/* ERANGE is also reported for underflow,
|
||||||
so test the value to distinguish overflow from that. */
|
so test the value to distinguish overflow from that. */
|
||||||
if (REAL_VALUES_LESS (dconst1, value)
|
if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT
|
||||||
|| REAL_VALUES_LESS (value, dconstm1))
|
&& (REAL_VALUES_LESS (dconst1, value)
|
||||||
|
|| REAL_VALUES_LESS (value, dconstm1)))
|
||||||
{
|
{
|
||||||
pedwarn ("floating point number exceeds range of `double'");
|
pedwarn ("floating point number exceeds range of `double'");
|
||||||
exceeds_double = 1;
|
exceeds_double = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user