compiler: revert `for package-scope "a = b; b = x" just set "a = x"`
commitd00dd52ea15f9026c327d2f591eb456d6f11df2c
authorIan Lance Taylor <iant@golang.org>
Sat, 26 Mar 2022 00:23:50 +0000 (25 17:23 -0700)
committerIan Lance Taylor <iant@golang.org>
Fri, 15 Apr 2022 21:27:05 +0000 (15 14:27 -0700)
tree278f15dc95ab9f1cebaa975bece1cbd395f127de
parent7e76cef873342a66408c126abceaf7dbddd3f477
compiler: revert `for package-scope "a = b; b = x" just set "a = x"`

Revert CL 245098.  It caused incorrect initialization ordering.

Adjust the runtime package to work even with the CL reverted.

Original description of CL 245098:

    This avoids requiring an init function to initialize the variable.
    This can only be done if x is a static initializer.

    The go1.15rc1 runtime package relies on this optimization.
    The package has a variable "var maxSearchAddr = maxOffAddr".
    The maxSearchAddr variable is used by code that runs before package
    initialization is complete.

For golang/go#51913

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/395994
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/gogo.cc
libgo/go/runtime/mpagealloc.go
libgo/go/runtime/mpagecache.go