From: Robert Griesemer Date: Thu, 11 Jan 2018 01:14:20 +0000 (-0800) Subject: cmd/compile/internal/syntax: don't record semi position if there's none X-Git-Tag: go1.10beta2~3 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=08e342d62c222b80c3a0480002eb71976218f589;p=gostls13.git cmd/compile/internal/syntax: don't record semi position if there's none Fixes #23406. Change-Id: Ief04e20357c9ca03a5e496f1742428394c8ee658 Reviewed-on: https://go-review.googlesource.com/87317 Run-TryBot: Robert Griesemer Reviewed-by: Matthew Dempsky TryBot-Result: Gobot Gobot --- 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 {