go version)?go version go1.9 windows/amd64
go env)?go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=d:\dev\go\meijing\;d:\dev\tpt_vendor;d:\dev\Godeps_workspace
set GORACE=
set GOROOT=d:\tools\go_amd64
set GOTOOLDIR=d:\tools\go_amd64\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\xxxx\AppData\Local\Temp\go-build851261075=/tmp/go-build -gno-record-gcc-switches
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
I compile my app, it is ok on go1.8 or go1.7
code is:

it is compile ok.
.\alert_action.go:448:2: offset too large in 02217 (d:\dev\meijingsrc\cn\com\hengwei\poller\alert_action.go:428) MOVQ -17179868768(BX)(AX8),BX
.\alert_action.go:448:2: offset too large in 03783 (d:\dev\meijingsrc\cn\com\hengwei\poller\alert_action.go:430) MOVQ -17179868768(DX)(CX8),DX
FAIL cn/com/hengwei/poller [build failed]
Hi. We're going to need something more than a screenshot to help debug this. At least paste a minimal reproduction of the problem.
\cc @randall77 @josharian
@dsnet this code is private, if you can promise not to spread it, nor use it elsewhere, and delete it after finding out the problem, I can send this code to your mail.
Please don't send me anything. I have reported on compiler bugs before. You should be able to use process of elimination to eventually trim the problem down to a snippet that is safe to share. For example, #20333.
````go
package abc
import (
"math"
)
const current_status_internal_start = math.MaxInt32 - 50
func gen_message(ss []*string, current int) string {
s := ss[current-current_status_internal_start]
if nil != s {
return ""
}
switch current {
case 0:
return "a"
default:
return "b"
}
}
````
main.zip
````
D:\developing\go\meijingsrc\abc>go build
.\main.go:15:2: offset too large in 00039 (d:\developing\go\meijingsrc\abc\main.go:10) MOVQ -17179868776(CX)(AX*8), CX
````
it is ok on the linux.
it is ok on the linux.
It's not, on my machine.
$ go build
# github.com/opennota/a
./main.go:15:2: offset too large in 00039 (/home/opennota/gocode/src/github.com/opennota/a/main.go:10) MOVQ -17179868776(CX)(AX*8), CX
$ go version
go version go1.9 linux/amd64
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/opennota/gocode"
GORACE=""
GOROOT="/home/opennota/go"
GOTOOLDIR="/home/opennota/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build906297495=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
@opennota yes, I made a mistake, it is fail also on the linux.
@runner-mei, thank you for producing a minimal repro.
Change https://golang.org/cl/59630 mentions this issue: cmd/compile: avoid generating large offsets
Reopening for cherry pick for 1.9.1.
CL 59630 OK for Go 1.9.2.
CL 70981 OK for Go 1.9.2. (resolved merge conflicts in cherry-pick)
Change https://golang.org/cl/70981 mentions this issue: [release-branch.go1.9] cmd/compile: avoid generating large offsets
go1.9.2 has been packaged and includes:
The release is posted at golang.org/dl.
— golang.org/x/build/cmd/releasebot, Oct 26 21:09:10 UTC
This bug is still exists in the go 1.9.2 on windows/386
````
C:\tpt_programssrc> go version
go1.9.2 windows/386
C:\tpt_programssrc>go build
.\main.go:15:2: offset too large in 00040 (C:\tpt_programssrc\main.go:10) MOVL -8589934388(CX)(AX*4), CX
````
Still happens on tip too, with GOARCH=386. Reopening.
Change https://golang.org/cl/82675 mentions this issue: cmd/compile: fix large load/store offsets on 386
Reopening for go 1.9.3.
CL 82675 OK for Go 1.9.3.
Change https://golang.org/cl/88324 mentions this issue: [release-branch.go1.9] cmd/compile: fix large load/store offsets on 386
go1.9.3 has been packaged and includes:
The release is posted at golang.org/dl.
— golang.org/x/build/cmd/releasebot, Jan 22 21:02:53 UTC
Most helpful comment
Please don't send me anything. I have reported on compiler bugs before. You should be able to use process of elimination to eventually trim the problem down to a snippet that is safe to share. For example, #20333.