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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-11-02
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
      while (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN))
        { 
          if (c_parser_next_token_is (parser, CPP_NAME)
              && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
            {
              arg = c_parser_peek_token (parser)->value;
              c_parser_consume_token (parser);
              if (c_parser_next_token_is (parser, CPP_COLON))
                c_parser_consume_token (parser);
              int src_index = -1;
              if (!c_parser_gimple_parse_bb_spec (arg, &src_index))
                c_parser_error (parser, "invalid source block specification");
              vargs.safe_push (size_int (src_index));
            }
          else if (c_parser_next_token_is (parser, CPP_COMMA))
            c_parser_consume_token (parser);
          else
            {
              arg = c_parser_gimple_unary_expression (parser).value;
              vargs.safe_push (arg);
            }
        }

doesn't terminate if c_parser_gimple_unary_expression does not consume
any token.  Not sure how to test this, an option would be to
terminate PHI parsing after the first error_mark_node, but then not sure
how to handle error recovery either.

Reply via email to