aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2018-01-10 17:14:20 -0800
committerRobert Griesemer <gri@golang.org>2018-01-11 01:30:49 +0000
commit08e342d62c222b80c3a0480002eb71976218f589 (patch)
tree50617c0756b7a37d1c050e45c0c2dc9d1a31f526
parent40a17eed9392cea198726d7a5a507b3596417fc9 (diff)
downloadgo-08e342d62c222b80c3a0480002eb71976218f589.tar.gz
go-08e342d62c222b80c3a0480002eb71976218f589.zip
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 <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-rw-r--r--src/cmd/compile/internal/syntax/parser.go10
1 files changed, 7 insertions, 3 deletions
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 {