diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-21 19:06:09 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-21 19:06:09 +0000 |
commit | 54210b67133d740c3c873d2b9f187c28486befb6 (patch) | |
tree | 14044b9c10df067297eda8e957f1ce5278e1159b /gcc/c-lex.c | |
parent | 8f2693d8fdb45a54938369d4cbb69eeffa0cc4f9 (diff) | |
download | gcc-54210b67133d740c3c873d2b9f187c28486befb6.tar.gz |
(yylex): Do warn about floating point out of range if
target floating-point format is IEEE. Use warning instead of
pedwarn to avoid getting errors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8538 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-lex.c')
-rw-r--r-- | gcc/c-lex.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 17d50bef181..e4d8bf913c6 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1360,24 +1360,24 @@ yylex () type = float_type_node; value = REAL_VALUE_ATOF (copy, TYPE_MODE (type)); - if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT - && REAL_VALUE_ISINF (value) && pedantic) - pedwarn ("floating point number exceeds range of `float'"); + /* A diagnostic is required here by some ANSI C testsuites. + This is not pedwarn, become some people don't want + an error for this. */ + if (REAL_VALUE_ISINF (value) && pedantic) + warning ("floating point number exceeds range of `float'"); } else if (lflag) { type = long_double_type_node; value = REAL_VALUE_ATOF (copy, TYPE_MODE (type)); - if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT - && REAL_VALUE_ISINF (value) && pedantic) - pedwarn ("floating point number exceeds range of `long double'"); + if (REAL_VALUE_ISINF (value) && pedantic) + warning ("floating point number exceeds range of `long double'"); } else { value = REAL_VALUE_ATOF (copy, TYPE_MODE (type)); - if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT - && REAL_VALUE_ISINF (value) && pedantic) - pedwarn ("floating point number exceeds range of `double'"); + if (REAL_VALUE_ISINF (value) && pedantic) + warning ("floating point number exceeds range of `double'"); } set_float_handler (NULL_PTR); @@ -1387,11 +1387,10 @@ yylex () { /* ERANGE is also reported for underflow, so test the value to distinguish overflow from that. */ - if (TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT - && (REAL_VALUES_LESS (dconst1, value) - || REAL_VALUES_LESS (value, dconstm1))) + if (REAL_VALUES_LESS (dconst1, value) + || REAL_VALUES_LESS (value, dconstm1)) { - pedwarn ("floating point number exceeds range of `double'"); + warning ("floating point number exceeds range of `double'"); exceeds_double = 1; } } |