compiler: don't export any functions with special names
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 19 Oct 2018 19:43:47 +0000 (19:43 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 19 Oct 2018 19:43:47 +0000 (19:43 +0000)
    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

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/export.cc

index bb7ab780f6b561a7d55f9500c0ec49cbc37e41d7..1503672619f151a87a2a703278bc1dd8b6467985 100644 (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.
index da3d67f115215f3ee5eb9473ba645e4fe58519b3..6365d6440b73d9cf59c16dfef416c2bf9c779c37 100644 (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.