Closed mvertes closed 1 year ago
sample.go
package main import "unsafe" type T struct { i uint64 } var d T var b [unsafe.Sizeof(d)]byte func main() { println(len(b)) }
$ go run ./sample.go 8
$ yaegi ./sample.go panic: reflect: call of reflect.Value.Interface on zero Value goroutine 1 [running]: reflect.valueInterface({0x0?, 0x0?, 0x140001ea3f0?}, 0xa8?) reflect/value.go:1485 +0xfc reflect.Value.Interface(...) reflect/value.go:1480 github.com/traefik/yaegi/interp.nodeType2(0x140001f18c0, 0x140001ea3f0, 0x1400042f900, {0x1400019c730, 0x0, 0x1}) github.com/traefik/yaegi/interp/type.go:494 +0x504 github.com/traefik/yaegi/interp.nodeType(...) github.com/traefik/yaegi/interp/type.go:400 github.com/traefik/yaegi/interp.(*Interpreter).gta.func1(0x1400042f680) github.com/traefik/yaegi/interp/gta.go:118 +0xfb8 github.com/traefik/yaegi/interp.(*node).Walk(0x1400042f680, 0x1400022b848, 0x0) github.com/traefik/yaegi/interp/interp.go:287 +0x34 github.com/traefik/yaegi/interp.(*node).Walk(0x1400042f540, 0x1400022b848, 0x0) github.com/traefik/yaegi/interp/interp.go:291 +0x74 github.com/traefik/yaegi/interp.(*node).Walk(0x1400042e000, 0x1400022b848, 0x0) github.com/traefik/yaegi/interp/interp.go:291 +0x74 github.com/traefik/yaegi/interp.(*Interpreter).gta(0x140001f18c0, 0x1400042e000, {0x140002d48a8, 0x4}, {0x140002d48a8, 0x4}, {0x140002d48a8, 0x4}) github.com/traefik/yaegi/interp/gta.go:20 +0x158 github.com/traefik/yaegi/interp.(*Interpreter).gtaRetry(0x140001f18c0?, {0x1400022ba30?, 0x140001ea360?, 0x1400022b970?}, {0x140002d48a8, 0x4}, {0x140002d48a8, 0x4}) github.com/traefik/yaegi/interp/gta.go:395 +0x118 github.com/traefik/yaegi/interp.(*Interpreter).CompileAST(0x140001f18c0, {0x10383ff90?, 0x140001ea360?}) github.com/traefik/yaegi/interp/program.go:92 +0x124 github.com/traefik/yaegi/interp.(*Interpreter).compileSrc(0x140001f18c0, {0x140002a2b40?, 0x95?}, {0x16d16f470?, 0x1400019c600?}, 0x40?) github.com/traefik/yaegi/interp/program.go:64 +0xd4 github.com/traefik/yaegi/interp.(*Interpreter).eval(0x140001f18c0, {0x140002a2b40?, 0x95?}, {0x16d16f470?, 0x200?}, 0x0?) github.com/traefik/yaegi/interp/interp.go:556 +0x28 github.com/traefik/yaegi/interp.(*Interpreter).EvalPath(0x140001f18c0, {0x16d16f470, 0x19}) github.com/traefik/yaegi/interp/interp.go:514 +0xa4 main.runFile(0x16d16f470?, {0x16d16f470, 0x19}, 0x0) github.com/traefik/yaegi/cmd/yaegi/run.go:153 +0xe8 main.run({0x140001aa010?, 0x1, 0x1}) github.com/traefik/yaegi/cmd/yaegi/run.go:116 +0xafc main.main() github.com/traefik/yaegi/cmd/yaegi/yaegi.go:144 +0x310
v0.15.1
No response
The following program
sample.go
triggers an unexpected resultExpected result
Got
Yaegi Version
v0.15.1
Additional Notes
No response