From: ian Date: Fri, 14 Aug 2015 17:26:27 +0000 (+0000) Subject: compiler: Report unnamed receiver types. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9ddf5f1a2eac0260ad3c1fd363194abe74a00022;p=thirdparty%2Fgcc.git compiler: Report unnamed receiver types. gccgo used to crash when presented with an invalid receiver type in a method. Instead, unnamed receiver types should report an error. Fixes golang/go#11557. Reviewed-on: https://go-review.googlesource.com/13245 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226899 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 1961c7ea6ff5..10f8b043e06c 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -fc9da313b4f5c13b4ac3bdddd98e699fd1c89613 +448d30b696461a39870d1b8beb1195e411300bfd 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/gogo.cc b/gcc/go/gofrontend/gogo.cc index 9a5dd57cdb56..134e03794619 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -1927,7 +1927,11 @@ Gogo::declare_function(const std::string& name, Function_type* type, return ftype->add_method_declaration(name, NULL, type, location); } else - go_unreachable(); + { + error_at(type->receiver()->location(), + "invalid receiver type (receiver must be a named type)"); + return Named_object::make_erroneous_name(name); + } } }