diff --git a/parser.c b/parser.c index 0b78337..672ce86 100644 --- a/parser.c +++ b/parser.c @@ -2595,6 +2595,11 @@ static bool parse_for_go(parser_t *parser, ast_block *block, ast_expression **ou goto onerr; } + if (!parser_next(parser)) { + parseerror(parser, "expected for-loop condition"); + goto onerr; + } + } else { if (!parser_next(parser)) { parseerror(parser, "expected for-loop condition"); goto onerr; @@ -2607,7 +2612,6 @@ static bool parse_for_go(parser_t *parser, ast_block *block, ast_expression **ou if (!cond) goto onerr; } - /* move on to incrementor */ if (parser->tok != ';') { parseerror(parser, "expected semicolon after for-loop initializer");