From: Ian Lance Taylor Date: Fri, 9 Mar 2012 06:37:27 +0000 (+0000) Subject: compiler: Correct handling of sink receiver. X-Git-Tag: misc/gccgo-go1_1_2~4111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=762c279900efedc1407c3c38d98601ddbff575ae;p=thirdparty%2Fgcc.git compiler: Correct handling of sink receiver. From-SVN: r185127 --- diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index ca57aea26ee2..5fe5aead9c0a 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -628,7 +628,7 @@ Gogo::start_function(const std::string& name, Function_type* type, Variable* this_param = new Variable(receiver->type(), NULL, false, true, true, location); std::string rname = receiver->name(); - if (rname.empty()) + if (rname.empty() || Gogo::is_sink_name(rname)) { // We need to give receivers a name since they wind up in // DECL_ARGUMENTS. FIXME. @@ -638,8 +638,7 @@ Gogo::start_function(const std::string& name, Function_type* type, ++count; rname = buf; } - if (!Gogo::is_sink_name(rname)) - block->bindings()->add_variable(rname, NULL, this_param); + block->bindings()->add_variable(rname, NULL, this_param); } const Typed_identifier_list* parameters = type->parameters();