From 4f32eced9d01c610bd53e8c59b83bcb5402eddb5 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 28 Nov 2020 12:14:40 -0800 Subject: [PATCH] compiler: improve error for import of non-string Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273867 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/parse.cc | 2 +- gcc/testsuite/go.test/test/import5.go | 36 +++------------------------ 3 files changed, 6 insertions(+), 34 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 46959070e85..c14a10f1265 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -16ab9b001c214cf831bc52a7bca5a2d18e9e4f3c +534fb907c821b052dc430330708d7fa555b91fe3 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index aa157e86cb2..1dac0029feb 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -5788,7 +5788,7 @@ Parse::import_spec(void*, unsigned int pragmas) if (!token->is_string()) { - go_error_at(this->location(), "import statement not a string"); + go_error_at(this->location(), "import path must be a string"); this->advance_token(); return; } diff --git a/gcc/testsuite/go.test/test/import5.go b/gcc/testsuite/go.test/test/import5.go index 6480acff92c..8fdc8c37574 100644 --- a/gcc/testsuite/go.test/test/import5.go +++ b/gcc/testsuite/go.test/test/import5.go @@ -21,35 +21,7 @@ import _ "go/parser" //import "greek/αβ" // Import paths must be strings. -import 42 // ERROR "import statement" -import 'a' // ERROR "import statement" -import 3.14 // ERROR "import statement" -import 0.25i // ERROR "import statement" - -// Each of these pairs tests both `` vs "" strings -// and also use of invalid characters spelled out as -// escape sequences and written directly. -// For example `"\x00"` tests import "\x00" -// while "`\x00`" tests import ``. -import "" // ERROR "import path" -import `` // ERROR "import path" -import "\x00" // ERROR "import path" -import `\x00` // ERROR "import path" -import "\x7f" // ERROR "import path" -import `\x7f` // ERROR "import path" -import "a!" // ERROR "import path" -import `a!` // ERROR "import path" -import "a b" // ERROR "import path" -import `a b` // ERROR "import path" -import "a\\b" // ERROR "import path" -import `a\\b` // ERROR "import path" -import "\"`a`\"" // ERROR "import path" -import `\"a\"` // ERROR "import path" -import "\x80\x80" // ERROR "import path" -import `\x80\x80` // ERROR "import path" -import "\xFFFD" // ERROR "import path" -import `\xFFFD` // ERROR "import path" - -// Invalid local imports. -import "/foo" // ERROR "import path cannot be absolute path" -import "c:/foo" // ERROR "import path contains invalid character" +import 42 // ERROR "import path must be a string" +import 'a' // ERROR "import path must be a string" +import 3.14 // ERROR "import path must be a string" +import 0.25i // ERROR "import path must be a string" -- 2.30.2