compiler: don't export any functions with special names

This keeps init functions from appearing in the export data.  Checking
    for special names in general means that we don't need to check
    specifically for nested functions or thunks, which have special names.
    
    Reviewed-on: https://go-review.googlesource.com/c/143237

From-SVN: r265321
This commit is contained in:
Ian Lance Taylor 2018-10-19 19:43:47 +00:00
parent 3146c60f16
commit 12d5ebf963
2 changed files with 3 additions and 7 deletions

View File

@ -1,4 +1,4 @@
6f4bce815786ff3803741355f7f280e4e2c89668
e1dc92a6037a3f81ea1b8ea8fb6207af33505f0c
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -75,12 +75,8 @@ should_export(Named_object* no)
if (Gogo::is_hidden_name(no->name()))
return false;
// We don't export nested functions.
if (no->is_function() && no->func_value()->enclosing() != NULL)
return false;
// We don't export thunks.
if (no->is_function() && Gogo::is_thunk(no))
// We don't export various special functions.
if (Gogo::is_special_name(no->name()))
return false;
// Methods are exported with the type, not here.