From: Richard Kenner Date: Sun, 25 Apr 1993 14:22:15 +0000 (-0400) Subject: (yylex): Don't warn about floating point out of range if target X-Git-Tag: misc/cutover-egcs-0~9730 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=6c548216354907c4997330ba34d488d5d181205f;p=gcc.git (yylex): Don't warn about floating point out of range if target floating-point format is IEEE. From-SVN: r4213 --- diff --git a/gcc/c-lex.c b/gcc/c-lex.c index f4ab73c6cd3f..ea6c0156aa97 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1486,7 +1486,8 @@ yylex () case 'f': case 'F': type = float_type_node; 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'"); garbage_chars = -1; break; @@ -1494,7 +1495,8 @@ yylex () case 'l': case 'L': type = long_double_type_node; 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 `long double'"); garbage_chars = -1; @@ -1509,7 +1511,8 @@ yylex () default: 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'"); } set_float_handler (NULL_PTR); @@ -1519,8 +1522,9 @@ yylex () { /* 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)) + if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT + && (REAL_VALUES_LESS (dconst1, value) + || REAL_VALUES_LESS (value, dconstm1))) { pedwarn ("floating point number exceeds range of `double'"); exceeds_double = 1;