Skip to content

cmd/compile: internal compiler error: two stores live simultaneously on ARM with -N #26163

@ALTree

Description

@ALTree
$ gotip version
go version devel +0dc814cd7f Sat Jun 30 01:04:30 2018 +0000 linux/amd64

The following program (reduced from a gosmith-generated one):

package p

var i int
var A = ([]*int{})[i]

var F func(float64, complex128) int
var C chan complex128
var B = F(1, 1+(<-C))

crashes the tip compiler when compiled for GOARCH=arm with optimizations disabled:

$ GOARCH=arm gotip tool compile -N crash.go

<autogenerated>:1: internal compiler error: two stores live simultaneously: v112 and v102

goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
	/home/alberto/go/src/runtime/debug/stack.go:24 +0xa7
cmd/compile/internal/gc.Fatalf(0xcc3d61, 0x29, 0xc000350b00, 0x2, 0x2)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:182 +0x1f7
cmd/compile/internal/gc.(*ssafn).Fatalf(0xc00000fb30, 0x100000000001, 0xcc3d61, 0x29, 0xc000350b00, 0x2, 0x2)
	/home/alberto/go/src/cmd/compile/internal/gc/ssa.go:5584 +0x67
cmd/compile/internal/ssa.(*Func).Fatalf(0xc00036c2c0, 0xcc3d61, 0x29, 0xc000350b00, 0x2, 0x2)
	/home/alberto/go/src/cmd/compile/internal/ssa/func.go:562 +0x73
cmd/compile/internal/ssa.storeOrder(0xc0003c6000, 0x46, 0x48, 0xc00000fec0, 0xc0003ca240, 0x83, 0x83, 0xc0003707d0, 0xc000311490, 0xcb38ca)
	/home/alberto/go/src/cmd/compile/internal/ssa/schedule.go:337 +0x4c0
cmd/compile/internal/ssa.writebarrier(0xc00036c2c0)
	/home/alberto/go/src/cmd/compile/internal/ssa/writebarrier.go:112 +0x6c7
cmd/compile/internal/ssa.Compile(0xc00036c2c0)
	/home/alberto/go/src/cmd/compile/internal/ssa/compile.go:70 +0x30e
cmd/compile/internal/gc.buildssa(0xc00036c160, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/ssa.go:211 +0xaa7
cmd/compile/internal/gc.compileSSA(0xc00036c160, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:259 +0x39
cmd/compile/internal/gc.compile(0xc00036c160)
	/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:238 +0x1a0
cmd/compile/internal/gc.funccompile(0xc00036c160)
	/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:209 +0xbd
cmd/compile/internal/gc.fninit(0xc000046ab0, 0x2, 0x2)
	/home/alberto/go/src/cmd/compile/internal/gc/init.go:212 +0xaab
cmd/compile/internal/gc.Main(0xccda48)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:644 +0x2bea
main.main()
	/home/alberto/go/src/cmd/compile/main.go:51 +0x96

The code 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