Skip to content

cmd/compile: internal compiler error: can't find source for b12->b4: v31 = MOVBload <bool> v14 v1 : DX #49122

Closed
@ALTree

Description

@ALTree
$ 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions