OSDN Git Service

*** empty log message ***
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 May 1992 18:59:21 +0000 (18:59 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 May 1992 18:59:21 +0000 (18:59 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1041 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/c-lex.c
gcc/reload.c

index a561f06..34c8356 100644 (file)
@@ -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')
                  {
index 4bc3770..23a2811 100644 (file)
@@ -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')
          {