https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84831
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Jakub Jelinek from comment #4) > 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; > } > > Both patches should work. I have no preference. Thanks.