compiler: Correct handling of sink receiver.

From-SVN: r185127
This commit is contained in:
Ian Lance Taylor 2012-03-09 06:37:27 +00:00
parent 896977b38f
commit 762c279900
1 changed files with 2 additions and 3 deletions

View File

@ -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();