compiler: improve error messages for expected curly brace
authorIan Lance Taylor <iant@golang.org>
Sun, 29 Nov 2020 02:51:05 +0000 (18:51 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 30 Nov 2020 20:14:23 +0000 (12:14 -0800)
For golang/go#17328

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273890

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/parse.cc
gcc/testsuite/go.test/test/syntax/semi1.go
gcc/testsuite/go.test/test/syntax/semi3.go
gcc/testsuite/go.test/test/syntax/semi4.go

index e2fc0b5560b3d30b315a65fdd36cd43b240b37d0..41246030f13950c59ab16db5cee2664eabeba58a 100644 (file)
@@ -1,4 +1,4 @@
-213abeedc85ed638a878f9457e422897fda3a111
+45461eeba1db1a3b4194dc8ecc331c0e92f5ad4c
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 1dac0029feba679bc4f700e70fd44fef467553b9..c9a5485049fc04619575531b0489b87204ba93be 100644 (file)
@@ -4422,7 +4422,7 @@ Parse::if_stat()
     {
       Location semi_loc = this->location();
       if (this->advance_token()->is_op(OPERATOR_LCURLY))
-       go_error_at(semi_loc, "missing %<{%> after if clause");
+       go_error_at(semi_loc, "unexpected semicolon or newline, expecting %<{%> after if clause");
       // Otherwise we will get an error when we call this->block
       // below.
     }
@@ -5359,7 +5359,7 @@ Parse::for_stat(Label* label)
     {
       Location semi_loc = this->location();
       if (this->advance_token()->is_op(OPERATOR_LCURLY))
-       go_error_at(semi_loc, "missing %<{%> after for clause");
+       go_error_at(semi_loc, "unexpected semicolon or newline, expecting %<{%> after for clause");
       // Otherwise we will get an error when we call this->block
       // below.
     }
@@ -5430,7 +5430,7 @@ Parse::for_clause(Expression** cond, Block** post)
     *cond = NULL;
   else if (this->peek_token()->is_op(OPERATOR_LCURLY))
     {
-      go_error_at(this->location(), "missing %<{%> after for clause");
+      go_error_at(this->location(), "unexpected semicolon or newline, expecting %<{%> after for clause");
       *cond = NULL;
       *post = NULL;
       return;
index 6e0428121ff60a9324d01f2dfbc2bfba380bdde4..8eed05c1ca105417f5ebf26291b00f5bb6158bf0 100644 (file)
@@ -1,13 +1,13 @@
 // errorcheck
 
-// Copyright 2010 The Go Authors.  All rights reserved.
+// Copyright 2010 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.
 
 package main
 
 func main() {
-       if x; y         // ERROR "missing .*{.* after if clause|undefined"
+       if x; y         // ERROR "expected .*{.* after if clause|undefined"
        {
                z       // GCCGO_ERROR "undefined"
 
index ca070d8a577b70dac28289b1f1722fecdf139d51..d064ce631c946587b441ad1471ed0f174f81a8f4 100644 (file)
@@ -1,13 +1,13 @@
 // errorcheck
 
-// Copyright 2010 The Go Authors.  All rights reserved.
+// Copyright 2010 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.
 
 package main
 
 func main() {
-       for x; y; z     // ERROR "missing .*{.* after for clause|undefined"
+       for x; y; z     // ERROR "expected .*{.* after for clause|undefined"
        {
                z       // GCCGO_ERROR "undefined"
 
index 99c2d22561b74f08977a9b00d304cb384c80f748..08c354751b6da12f5c0004cb5c3ab34f3b565d70 100644 (file)
@@ -1,6 +1,6 @@
 // errorcheck
 
-// Copyright 2010 The Go Authors.  All rights reserved.
+// Copyright 2010 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.
 
@@ -8,7 +8,5 @@ package main
 
 func main() {
        for x           // GCCGO_ERROR "undefined"
-       {               // ERROR "missing .*{.* after for clause"
+       {               // ERROR "unexpected {, expecting for loop condition|expecting .*{.* after for clause"
                z       // GCCGO_ERROR "undefined"
-
-