If the Go frontend sees a dot-import of a package, it should only add
an imported variable to the package bindings if the variable is in the
package being imported.  This patch fixes that.  A test case for this
is the 1.13 os package, in which ErrClosed and friends are defined
both locally and in the imported internal/oserror package.
Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 275345)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-3b8a505824abb2a69f4c04c555a4ba29ab8b102b
+ca0fdb4c7735a648b8f10f1248631adf9afb8454
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: gcc/go/gofrontend/import.cc
===================================================================
--- gcc/go/gofrontend/import.cc (revision 275345)
+++ gcc/go/gofrontend/import.cc (working copy)
@@ -777,7 +777,7 @@ Import::import_var()
                               this->location_);
   Named_object* no;
   no = vpkg->add_variable(name, var);
-  if (this->add_to_globals_)
+  if (this->add_to_globals_ && vpkg == this->package_)
     this->gogo_->add_dot_import_object(no);
 }
 

Reply via email to