Go patch committed: Don't export functions with special names
Ian Lance Taylor
iant@golang.org
Fri Oct 19 21:16:00 GMT 2018
This patch changes the Go frontend to not 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. Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu. Committed to mainline.
Ian
-------------- next part --------------
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE (revision 265297)
+++ gcc/go/gofrontend/MERGE (working copy)
@@ -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.
Index: gcc/go/gofrontend/export.cc
===================================================================
--- gcc/go/gofrontend/export.cc (revision 265296)
+++ gcc/go/gofrontend/export.cc (working copy)
@@ -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.
More information about the Gcc-patches
mailing list