compiler: Always put descriptor wrappers in their own section.

This lets the linker GC them.

From-SVN: r201442
This commit is contained in:
Ian Lance Taylor 2013-08-02 17:01:43 +00:00
parent d62d515246
commit aa7e089fdc

View file

@ -3582,6 +3582,12 @@ Function::make_descriptor_wrapper(Gogo* gogo, Named_object* no,
Named_object* dno = gogo->start_function(name, new_fntype, false, loc);
dno->func_value()->is_descriptor_wrapper_ = true;
// Put the wrapper in a unique section so that it can be discarded
// by the linker if it is not needed. Every top-level function will
// get a wrapper, in case there is a reference other than a call
// from some other package, but most will not need one.
dno->func_value()->set_in_unique_section();
gogo->start_block(loc);
Expression* fn = Expression::make_func_reference(no, NULL, loc);