blob: 2e846a7d55b585057af56ba41eff6e26310f96fa [file] [edit]
[!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"}