]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/gc: don't ignore EOF in new parser
authorRobert Griesemer <gri@golang.org>
Mon, 16 Nov 2015 20:29:55 +0000 (12:29 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 17 Nov 2015 01:05:39 +0000 (01:05 +0000)
Fixes #13274.
Fixes #13272.

Change-Id: Ie67a2c4671ee2b49831898fff7677cd65d780942
Reviewed-on: https://go-review.googlesource.com/16972
Reviewed-by: Chris Manghane <cmang@golang.org>
src/cmd/compile/internal/gc/parser.go
test/fixedbugs/issue13274.go [new file with mode: 0644]

index d2b382fdfc41bb3f8eb2872a071a3e51ee8c720e..1d24b271e078947f0b5fd6a256d2fb62b854f33b 100644 (file)
@@ -88,7 +88,7 @@ func (p *parser) got(tok int32) bool {
 }
 
 func (p *parser) want(tok int32) {
-       if p.tok != EOF && !p.got(tok) {
+       if !p.got(tok) {
                p.syntax_error("")
                p.advance()
        }
@@ -293,6 +293,8 @@ func (p *parser) file() {
        }
 
        xtop = concat(xtop, p.xdcl_list())
+
+       p.want(EOF)
 }
 
 // go.y:package
diff --git a/test/fixedbugs/issue13274.go b/test/fixedbugs/issue13274.go
new file mode 100644 (file)
index 0000000..a93c63f
--- /dev/null
@@ -0,0 +1,11 @@
+// errorcheck
+
+// Copyright 2015 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Check that we don't ignore EOF.
+
+package p
+
+var f = func() { // ERROR "unexpected EOF"
\ No newline at end of file