https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84831

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
diff -upbd of that for better readability.

--- gcc/stmt.c.jj       2018-01-03 10:19:55.150533956 +0100
+++ gcc/stmt.c  2018-03-12 13:25:03.790733765 +0100
@@ -247,7 +247,8 @@ parse_output_constraint (const char **co
     }

   /* Loop through the constraint string.  */
-  for (p = constraint + 1; *p; p += CONSTRAINT_LEN (*p, p))
+  for (p = constraint + 1; *p; )
+    {
     switch (*p)
       {
       case '+':
@@ -304,6 +305,11 @@ parse_output_constraint (const char **co
        break;
       }

+      for (size_t len = CONSTRAINT_LEN (*p, p); len; len--, p++)
+       if (*p == '\0')
+         break;
+    }
+
   return true;
 }


Note, I was wrong about insufficient, your patch was sufficient, I was
initially also changing parse_input_constraint but it turned out to be
unnecessary.

Reply via email to