Also report an error for "cross-interpretation": not supported
due to the interpreter's assumption that host and target
{int,uint,uintptr} are the same. (Too tedious and messy to fix.)
Tested manually:
% cat d.go
package main
const m = ^uintptr(0)
const w = m>>8&1 + m>>16&1 + m>>32&1
func main() { println(m, w) }
% ./ssadump -build=P -run d.go
package main:
const m m = 18446744073709551615:uintptr
const w w = 3:uintptr
18446744073709551615 3
% GOARCH=386 ./ssadump -build=P -run d.go
package main:
const m m = 4294967295:uintptr
const w w = 2:uintptr
Error: Cross-interpretation is not yet supported (target has GOARCH 386, interpreter has amd64).
Fixes golang/go#7080
R=gri
CC=golang-codereviews
https://golang.org/cl/49070043
|
||
|---|---|---|
| .. | ||
| testdata | ||
| external.go | ||
| external_plan9.go | ||
| external_unix.go | ||
| external_windows.go | ||
| interp.go | ||
| interp_test.go | ||
| map.go | ||
| ops.go | ||
| reflect.go | ||
| value.go | ||