Commit 547ad557 by Richard Stallman

(yylex): For floats, Use REAL_VALUES_LESS to distinguish underflow from overflow.

(yylex): For floats, Use REAL_VALUES_LESS to distinguish
underflow from overflow.  Delete special case for 0.0.

From-SVN: r2363
parent 09a99207
......@@ -1370,24 +1370,10 @@ yylex ()
#ifdef ERANGE
if (errno == ERANGE && !flag_traditional && pedantic)
{
char *p1 = token_buffer;
/* Check for "0.0" and variants;
SunOS 4 spuriously returns ERANGE for them. */
while (*p1 == '0') p1++;
if (*p1 == '.')
{
p1++;
while (*p1 == '0') p1++;
}
if (*p1 == 'e' || *p1 == 'E')
{
/* with significand==0, ignore the exponent */
p1++;
while (*p1 != 0) p1++;
}
/* ERANGE is also reported for underflow,
so test the value to distinguish overflow from that. */
if (*p1 != 0 && (value > 1.0 || value < -1.0))
/* ERANGE is also reported for underflow,
so test the value to distinguish overflow from that. */
if (REAL_VALUES_LESS (dconst1, value)
|| REAL_VALUES_LESS (value, dconstm1))
{
pedwarn ("floating point number exceeds range of `double'");
exceeds_double = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment