[!GOARCH:amd64] skip # Large static offsets are initialized dynamically. go tool compile -S -p=p -o ok.o ok.go stdout 'MOVB.*p\.\.stmp_0\+1073741824\(SB\)' ! stderr . # Multiword constants must not straddle the static offset limit. go tool compile -S -p=p -o straddle.o straddle.go stdout 'MOVQ.*p\.x\+1073741824\(SB\)' ! stderr . # Oversized symbols fail without leaking an internal error. ! go tool compile -p=p -o too_large.o too_large.go stdout 'symbol too large' ! stdout 'prepwrite' ! stderr . -- ok.go -- package p var x = []byte{1 << 30: 1} -- straddle.go -- package p type T struct { _ [1<<30 - 8]byte s string } var x = T{s: "x"} -- too_large.go -- package p var x = []string{100000000000000: "x"}