From f23753c710d54fdf6f6c6cbe93c5b0fdbf209fc8 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 14 Dec 2020 21:26:33 -0800 Subject: [PATCH] compiler: better error for unexpected digit A digit character is not invalid in general, but it's not permitted at the start of an identifier. Report a better error message. The test case is issue11359.go in the source repo. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/278174 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/lex.cc | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 681debb0392..1bada25300d 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -3e8f49a2137a87fdaba51c3002ddbe41ab18ed46 +8b913a1865e36d4bd105f29aa0b12264a4e03515 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/lex.cc b/gcc/go/gofrontend/lex.cc index 156a90c7baf..e71b8cddf65 100644 --- a/gcc/go/gofrontend/lex.cc +++ b/gcc/go/gofrontend/lex.cc @@ -743,6 +743,13 @@ Lex::next_token() if (Lex::is_unicode_letter(ci)) return this->gather_identifier(); + if (!issued_error && Lex::is_unicode_digit(ci)) + { + go_error_at(this->location(), + "identifier cannot begin with digit"); + issued_error = true; + } + if (!issued_error) go_error_at(this->location(), "invalid character 0x%x in input file", -- 2.30.2