Closed
Description
$ gotip version
go version devel go1.18-ff8115d1a1 Fri Oct 22 14:05:31 2021 +0000 linux/amd64
package p
var B []bool
var N int
func f(p bool, m map[bool]bool) bool {
var q bool
_ = p || N&N < N || B[0] || B[0]
return p && q && m[q]
}
$ gotip build crash.go
# command-line-arguments
./crash.go:8:8: internal compiler error: 'f': can't find source for b12->b4: v31 = MOVBload <bool> v14 v1 : DX
goroutine 8 [running]:
runtime/debug.Stack()
/home/alberto/go/src/runtime/debug/stack.go:24 +0x65
cmd/compile/internal/base.FatalfAt({0xc63880, 0x0}, {0xc0000e4120, 0x27}, {0xc0000a4300, 0x4, 0x4})
/home/alberto/go/src/cmd/compile/internal/base/print.go:227 +0x1ca
cmd/compile/internal/base.Fatalf(...)
/home/alberto/go/src/cmd/compile/internal/base/print.go:196
cmd/compile/internal/ssagen.(*ssafn).Fatalf(0x8, {0x21f015b8, 0x7fa5}, {0xcfa986, 0x21}, {0xc0005d2ab0, 0x3, 0x0})
/home/alberto/go/src/cmd/compile/internal/ssagen/ssa.go:7621 +0x17d
cmd/compile/internal/ssa.(*Func).Fatalf(0xc0005e2000, {0xcfa986, 0x21}, {0xc0005d2ab0, 0x3, 0x3})
/home/alberto/go/src/cmd/compile/internal/ssa/func.go:773 +0x279
cmd/compile/internal/ssa.(*edgeState).processDest(0xc0000cf280, {0xe3e720, 0x1275c00}, 0x1f, 0xc0004ce660, {0x2, 0x0})
/home/alberto/go/src/cmd/compile/internal/ssa/regalloc.go:2267 +0x99b
...
The program compiles fine in Go1.17.
git bisect
points to ed647b1. I'm tentatively labeling this as a release blocker since it's a compiler crasher on a valid program introduced during the current development cycle.
cc @mdempsky
cc @randall77 @dr2chase for regalloc.