Skip to content

cmd/compile: internal compiler error: panic during prove #26043

Closed
@ALTree

Description

@ALTree
$ gotip version
go version devel +6fdbed0543 Mon Jun 25 02:22:05 2018 +0000 linux/amd64

The following program:

package p

func f() {
	var s1 string
	var b bool
	if b {
		b = !b
		s1 += "a"
	}

	var s2 string
	var i, j int
	if (s1 <= "") || (s2 >= "") {
		j = len(s1[:6])
	} else {
		i = len("b")
	}

	for j < 0 {
		j += i
	}
}

crashes the tip compiler with an integer divide by zero error:

$ gotip build crash.go 

crash.go:6:2: internal compiler error: panic during prove while compiling f:

runtime error: integer divide by zero

goroutine 1 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc00034ea68, 0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/compile.go:38 +0xc6
panic(0xc4bbc0, 0x12fd7b0)
	/home/adonizetti/go/src/runtime/panic.go:494 +0x1b9
cmd/compile/internal/ssa.findIndVar(0xc0003422c0, 0xc00038ae60, 0xc000354a10, 0xc000354930)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/loopbce.go:158 +0x8af
cmd/compile/internal/ssa.prove(0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/prove.go:765 +0x7ad
cmd/compile/internal/ssa.Compile(0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/compile.go:70 +0x30e
cmd/compile/internal/gc.buildssa(0xc000342000, 0x0, 0x0)
	/home/adonizetti/go/src/cmd/compile/internal/gc/ssa.go:211 +0xaa7
cmd/compile/internal/gc.compileSSA(0xc000342000, 0x0)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:259 +0x39
cmd/compile/internal/gc.compile(0xc000342000)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:238 +0x1a0
cmd/compile/internal/gc.funccompile(0xc000342000)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:209 +0xbd
cmd/compile/internal/gc.Main(0xccda88)
	/home/adonizetti/go/src/cmd/compile/internal/gc/main.go:637 +0x261d
main.main()
	/home/adonizetti/go/src/cmd/compile/main.go:51 +0x96

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
	/home/adonizetti/go/src/runtime/debug/stack.go:24 +0xa7
cmd/compile/internal/gc.Fatalf(0xcc4f68, 0x2c, 0xc00031f280, 0x4, 0x4)
	/home/adonizetti/go/src/cmd/compile/internal/gc/subr.go:182 +0x1f7
cmd/compile/internal/gc.(*ssafn).Fatalf(0xc000063a10, 0x602100000002, 0xcc4f68, 0x2c, 0xc00031f280, 0x4, 0x4)
	/home/adonizetti/go/src/cmd/compile/internal/gc/ssa.go:5583 +0x67
cmd/compile/internal/ssa.(*Func).Fatalf(0xc0003422c0, 0xcc4f68, 0x2c, 0xc00031f280, 0x4, 0x4)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/func.go:562 +0x73
cmd/compile/internal/ssa.Compile.func1(0xc00034ea68, 0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/compile.go:40 +0x23a
panic(0xc4bbc0, 0x12fd7b0)
	/home/adonizetti/go/src/runtime/panic.go:494 +0x1b9
cmd/compile/internal/ssa.findIndVar(0xc0003422c0, 0xc00038ae60, 0xc000354a10, 0xc000354930)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/loopbce.go:158 +0x8af
cmd/compile/internal/ssa.prove(0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/prove.go:765 +0x7ad
cmd/compile/internal/ssa.Compile(0xc0003422c0)
	/home/adonizetti/go/src/cmd/compile/internal/ssa/compile.go:70 +0x30e
cmd/compile/internal/gc.buildssa(0xc000342000, 0x0, 0x0)
	/home/adonizetti/go/src/cmd/compile/internal/gc/ssa.go:211 +0xaa7
cmd/compile/internal/gc.compileSSA(0xc000342000, 0x0)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:259 +0x39
cmd/compile/internal/gc.compile(0xc000342000)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:238 +0x1a0
cmd/compile/internal/gc.funccompile(0xc000342000)
	/home/adonizetti/go/src/cmd/compile/internal/gc/pgen.go:209 +0xbd
cmd/compile/internal/gc.Main(0xccda88)
	/home/adonizetti/go/src/cmd/compile/internal/gc/main.go:637 +0x261d
main.main()
	/home/adonizetti/go/src/cmd/compile/main.go:51 +0x96

The program compiles fine on go1.10.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.release-blocker

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions