summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-05-21 18:59:21 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1992-05-21 18:59:21 +0000
commit01828b3e7318b2e855dfd3930271b7f179357906 (patch)
treec41085925a62cf346169fbed0e68019ee18d84f2
parentee9efa7603c9a22692542126f92c722544bc7393 (diff)
downloadgcc-01828b3e7318b2e855dfd3930271b7f179357906.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1041 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/c-lex.c13
-rw-r--r--gcc/reload.c16
2 files changed, 19 insertions, 10 deletions
diff --git a/gcc/c-lex.c b/gcc/c-lex.c
index a561f06e200..34c83569505 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 4bc377019c0..23a2811b6fe 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')
{