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); }