compiler: Put nointerface methods in unique sections.

From-SVN: r207214
This commit is contained in:
Ian Lance Taylor 2014-01-28 21:44:53 +00:00
parent 0f59a31da8
commit 19cef1c1f1
1 changed files with 9 additions and 2 deletions

View File

@ -4094,12 +4094,19 @@ Function::get_or_make_decl(Gogo* gogo, Named_object* no)
// stack splitting for the thunk.
bool disable_split_stack = this->is_recover_thunk_;
// This should go into a unique section if that has been
// requested elsewhere, or if this is a nointerface function.
// We want to put a nointerface function into a unique section
// because there is a good chance that the linker garbage
// collection can discard it.
bool in_unique_section = this->in_unique_section_ || this->nointerface_;
Btype* functype = this->type_->get_backend_fntype(gogo);
this->fndecl_ =
gogo->backend()->function(functype, no->get_id(gogo), asm_name,
is_visible, false, is_inlinable,
disable_split_stack,
this->in_unique_section_, this->location());
disable_split_stack, in_unique_section,
this->location());
}
return this->fndecl_;
}