diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index ff3e769864..c8dfc967e6 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -1768,9 +1768,13 @@ func (p *parser) header(keyword token) (init SimpleStmt, cond Expr, post SimpleS lit string // valid if pos.IsKnown() } if p.tok != _Lbrace { - semi.pos = p.pos() - semi.lit = p.lit - p.want(_Semi) + if p.tok == _Semi { + semi.pos = p.pos() + semi.lit = p.lit + p.next() + } else { + p.want(_Semi) + } if keyword == _For { if p.tok != _Semi { if p.tok == _Lbrace {