Skip to content

cmd/compile: crash while exporting aliases (with GODEBUG=gotypesalias=1) #66550

@adonovan

Description

@adonovan

(using pre-go1.23 toolchain built at f6b93a4)

This input file (a test case for issue #50259) causes the compiler to crash when gotypesalias=1 is enabled:

package p

var x T[B]

type T[_ any] struct{}
type A T[B]
type B = T[A]
xtools$ GODEBUG=gotypesalias=0 go build -o x ~/w/goroot/test/typeparam/issue50259.go

(OK)

xtools$ GODEBUG=gotypesalias=1 go build -o x ~/w/goroot/test/typeparam/issue50259.go
# command-line-arguments
<unknown line number>: internal compiler error: unexpected types2.Invalid

goroutine 1 [running]:
runtime/debug.Stack()
	../goroot/src/runtime/debug/stack.go:26 +0x64
cmd/compile/internal/base.FatalfAt({0x176300?, 0x140?}, {0x104e87fa3, 0x19}, {0x0, 0x0, 0x0})
	../goroot/src/cmd/compile/internal/base/print.go:225 +0x1fc
cmd/compile/internal/base.Fatalf(...)
	../goroot/src/cmd/compile/internal/base/print.go:194
cmd/compile/internal/noder.(*pkgWriter).typIdx(0x14000176300, {0x1050c14a8, 0x1055ddd80}, 0x1400011c6e0)
	../goroot/src/cmd/compile/internal/noder/writer.go:510 +0x2f8
cmd/compile/internal/noder.(*writer).typ(0x14000414370, {0x1050c14a8?, 0x1055ddd80?})
	../goroot/src/cmd/compile/internal/noder/writer.go:470 +0x34
cmd/compile/internal/noder.(*writer).doObj(0x14000414370, 0x14000414420, {0x1050c8440, 0x14000420480})
	../goroot/src/cmd/compile/internal/noder/writer.go:844 +0x468
cmd/compile/internal/noder.(*pkgWriter).objIdx(0x14000176300, {0x1050c8440, 0x14000420480})
	../goroot/src/cmd/compile/internal/noder/writer.go:787 +0x5c0
cmd/compile/internal/noder.(*pkgWriter).objInstIdx(0x14000176300, {0x1050c8440, 0x14000420480}, 0x0, 0x0)
	../goroot/src/cmd/compile/internal/noder/writer.go:728 +0x104
cmd/compile/internal/noder.(*writer).obj(0x140004140b0, {0x1050c8440?, 0x14000420480?}, 0x14000420480?)
	../goroot/src/cmd/compile/internal/noder/writer.go:704 +0x34
cmd/compile/internal/noder.writePkgStub({0x0?, {0x0?, 0x0?}}, {0x1400005c570, 0x1, 0x1})
	../goroot/src/cmd/compile/internal/noder/unified.go:325 +0x3bc
cmd/compile/internal/noder.unified({0x0?, {0x0?, 0x0?}}, {0x1400005c570?, 0x10500a440?, 0x0?})
	../goroot/src/cmd/compile/internal/noder/unified.go:180 +0x98
cmd/compile/internal/noder.LoadPackage({0x14000002340, 0x1, 0x2})
	../goroot/src/cmd/compile/internal/noder/noder.go:77 +0x398
cmd/compile/internal/gc.Main(0x1050bbde0)
	../goroot/src/cmd/compile/internal/gc/main.go:197 +0xb08
main.main()
	../goroot/src/cmd/compile/main.go:57 +0x110

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions