Commit 4bb90140 by Ian Lance Taylor

Don't crash declaring a function named "_".

From-SVN: r170636
parent 86620d2d
...@@ -2063,9 +2063,12 @@ Parse::function_decl() ...@@ -2063,9 +2063,12 @@ Parse::function_decl()
return; return;
} }
this->advance_token(); this->advance_token();
named_object = this->gogo_->declare_function(name, fntype, location); if (!Gogo::is_sink_name(name))
if (named_object->is_function_declaration()) {
named_object->func_declaration_value()->set_asm_name(asm_name); named_object = this->gogo_->declare_function(name, fntype, location);
if (named_object->is_function_declaration())
named_object->func_declaration_value()->set_asm_name(asm_name);
}
} }
// Check for the easy error of a newline before the opening brace. // Check for the easy error of a newline before the opening brace.
...@@ -2082,8 +2085,8 @@ Parse::function_decl() ...@@ -2082,8 +2085,8 @@ Parse::function_decl()
if (!this->peek_token()->is_op(OPERATOR_LCURLY)) if (!this->peek_token()->is_op(OPERATOR_LCURLY))
{ {
if (named_object == NULL) if (named_object == NULL && !Gogo::is_sink_name(name))
named_object = this->gogo_->declare_function(name, fntype, location); this->gogo_->declare_function(name, fntype, location);
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment