Skip to content

cmd/compile: internal compiler error: panic during lower (unreachable) on arm64 #30679

Closed
@ALTree

Description

@ALTree
$ gotip version
go version devel +9153a3ef05 Fri Mar 8 07:58:16 2019 +0000 windows/amd64

The following program:

package p

func f() {
	var f float64
	var p, q *float64

	p = &f
	if *q > 0 {
		p = q
	}
	_ = *p
}

Crashes the tip compiler, when built for linux/arm64, as follows:

$ GOOS=linux GOARCH=arm64 gotip build crash.go

# command-line-arguments
.\crash.go:8:10: internal compiler error: 'f': panic during lower while compiling f:

unreachable

goroutine 20 [running]:
cmd/compile/internal/ssa.Compile.func1(0xc0003fb108, 0xc0003ea000)
        go/src/cmd/compile/internal/ssa/compile.go:45 +0xac
panic(0xdef300, 0x102bad0)
        go/src/runtime/panic.go:532 +0x1c3
cmd/compile/internal/ssa.arm64Negate(...)
        go/src/cmd/compile/internal/ssa/rewrite.go:734
cmd/compile/internal/ssa.rewriteValueARM64_OpARM64CSEL_0(0xc00034c620, 0x0)
        go/src/cmd/compile/internal/ssa/rewriteARM64.go:4530 +0xa7b
cmd/compile/internal/ssa.rewriteValueARM64(0xc00034c620, 0x0)
        go/src/cmd/compile/internal/ssa/rewriteARM64.go:77 +0x1d1e
cmd/compile/internal/ssa.applyRewrite(0xc0003ea000, 0xea8f90, 0xea8ff8)
        go/src/cmd/compile/internal/ssa/rewrite.go:80 +0x366
cmd/compile/internal/ssa.lower(0xc0003ea000)
        go/src/cmd/compile/internal/ssa/lower.go:10 +0x4d
cmd/compile/internal/ssa.Compile(0xc0003ea000)
        go/src/cmd/compile/internal/ssa/compile.go:90 +0x480
cmd/compile/internal/gc.buildssa(0xc0000c42c0, 0x0, 0x0)
        go/src/cmd/compile/internal/gc/ssa.go:234 +0xc04
cmd/compile/internal/gc.compileSSA(0xc0000c42c0, 0x0)
        go/src/cmd/compile/internal/gc/pgen.go:297 +0x54
cmd/compile/internal/gc.compileFunctions.func2(0xc000345e00, 0xc000054a10, 0x0)
        go/src/cmd/compile/internal/gc/pgen.go:362 +0x50
created by cmd/compile/internal/gc.compileFunctions
        go/src/cmd/compile/internal/gc/pgen.go:360 +0x130

goroutine 20 [running]:
runtime/debug.Stack(0x10371a0, 0xc00007c008, 0x0)
        go/src/runtime/debug/stack.go:24 +0xa4
cmd/compile/internal/gc.Fatalf(0xc000010300, 0x32, 0xc00041a000, 0x5, 0x5)
        go/src/cmd/compile/internal/gc/subr.go:190 +0x29a
cmd/compile/internal/gc.(*ssafn).Fatalf(0xc0003e8000, 0x80a000000002, 0xe9d789, 0x2c, 0xc00003a300, 0x4, 0x4)
        go/src/cmd/compile/internal/gc/ssa.go:5855 +0x1b8
cmd/compile/internal/ssa.(*Func).Fatalf(...)
        go/src/cmd/compile/internal/ssa/func.go:577
cmd/compile/internal/ssa.Compile.func1(0xc0003fb108, 0xc0003ea000)
        go/src/cmd/compile/internal/ssa/compile.go:47 +0x226
panic(0xdef300, 0x102bad0)
        go/src/runtime/panic.go:532 +0x1c3
cmd/compile/internal/ssa.arm64Negate(...)
        go/src/cmd/compile/internal/ssa/rewrite.go:734
cmd/compile/internal/ssa.rewriteValueARM64_OpARM64CSEL_0(0xc00034c620, 0x0)
        go/src/cmd/compile/internal/ssa/rewriteARM64.go:4530 +0xa7b
cmd/compile/internal/ssa.rewriteValueARM64(0xc00034c620, 0x0)
        go/src/cmd/compile/internal/ssa/rewriteARM64.go:77 +0x1d1e
cmd/compile/internal/ssa.applyRewrite(0xc0003ea000, 0xea8f90, 0xea8ff8)
        go/src/cmd/compile/internal/ssa/rewrite.go:80 +0x366
cmd/compile/internal/ssa.lower(0xc0003ea000)
        go/src/cmd/compile/internal/ssa/lower.go:10 +0x4d
cmd/compile/internal/ssa.Compile(0xc0003ea000)
        go/src/cmd/compile/internal/ssa/compile.go:90 +0x480
cmd/compile/internal/gc.buildssa(0xc0000c42c0, 0x0, 0x0)
        go/src/cmd/compile/internal/gc/ssa.go:234 +0xc04
cmd/compile/internal/gc.compileSSA(0xc0000c42c0, 0x0)
        go/src/cmd/compile/internal/gc/pgen.go:297 +0x54
cmd/compile/internal/gc.compileFunctions.func2(0xc000345e00, 0xc000054a10, 0x0)
        go/src/cmd/compile/internal/gc/pgen.go:362 +0x50
created by cmd/compile/internal/gc.compileFunctions
        go/src/cmd/compile/internal/gc/pgen.go:360 +0x130

It compiles fine in go1.12.

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