diff options
author | Richard Stallman <rms@gnu.org> | 1992-05-21 18:59:21 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-05-21 18:59:21 +0000 |
commit | e53c841d038337262176cb181780cb5359392ed7 (patch) | |
tree | c41085925a62cf346169fbed0e68019ee18d84f2 /gcc | |
parent | 0eb9f40e0612492b514fcc5b339106fc5060b950 (diff) | |
download | gcc-e53c841d038337262176cb181780cb5359392ed7.zip gcc-e53c841d038337262176cb181780cb5359392ed7.tar.gz gcc-e53c841d038337262176cb181780cb5359392ed7.tar.bz2 |
*** empty log message ***
From-SVN: r1041
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-lex.c | 13 | ||||
-rw-r--r-- | gcc/reload.c | 16 |
2 files changed, 19 insertions, 10 deletions
diff --git a/gcc/c-lex.c b/gcc/c-lex.c index a561f06e..34c8356 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1290,7 +1290,7 @@ yylex () set_float_handler (0); } #ifdef ERANGE - if (errno == ERANGE && !flag_traditional) + if (errno == ERANGE && !flag_traditional && pedantic) { char *p1 = token_buffer; /* Check for "0.0" and variants; @@ -1321,9 +1321,14 @@ yylex () { if (f_seen) error ("two `f's in floating constant"); - f_seen = 1; - type = float_type_node; - value = REAL_VALUE_TRUNCATE (TYPE_MODE (type), value); + else + { + f_seen = 1; + type = float_type_node; + value = REAL_VALUE_TRUNCATE (TYPE_MODE (type), value); + if (REAL_VALUE_ISINF (value) && pedantic) + pedwarn ("floating point number exceeds range of `float'"); + } } else if (c == 'l' || c == 'L') { diff --git a/gcc/reload.c b/gcc/reload.c index 4bc3770..23a2811 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1913,13 +1913,17 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) while (c = *p++) if (c == '%') { - /* The last operand should not be marked commutative. This - problem is hard to detect, so make it obvious by calling - abort here. */ + /* The last operand should not be marked commutative. */ if (i == noperands - 1) - abort (); - - commutative = i; + { + if (this_insn_is_asm) + warning_for_asm (this_insn, + "`%' constraint used with last operand"); + else + abort (); + } + else + commutative = i; } else if (c >= '0' && c <= '9') { |