Closed
Description
$ gotip version
go version devel go1.18-f288526374 Fri Oct 29 04:21:07 2021 +0000 linux/amd64
package p
func f() {
go copy([]int{1: 0}, []int{})
}
$ gotip tool compile crash.go
crash.go:4:2: internal compiler error: TempAt called with nil type
goroutine 1 [running]:
runtime/debug.Stack()
/home/alberto/go/src/runtime/debug/stack.go:24 +0x65
cmd/compile/internal/base.FatalfAt({0xb32c71?, 0x0?}, {0xd1ccd2, 0x1b}, {0x0, 0x0, 0x0})
/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/typecheck.TempAt({0xe7f7a8?, 0x0?}, 0xc000434dc0, 0x0)
/home/alberto/go/src/cmd/compile/internal/typecheck/dcl.go:410 +0x177
cmd/compile/internal/escape.(*escape).copyExpr(0xc00010acd0?, {0x0?, 0x0?}, {0xe7f7a8, 0xc000125e00}, 0xc000127a90, 0xc000127a80?, 0x1)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:379 +0xbf
cmd/compile/internal/escape.(*escape).wrapExpr(0xc000407f80, {0x125e00?, 0xc0?}, 0xc00010ac60, 0xc000127a90, {0xe7e420?, 0xc000125e60?}, 0xc000434f20)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:351 +0x8d
cmd/compile/internal/escape.(*escape).rewriteArgument.func2({0x41768b?, 0x0?}, 0xc00010ac60)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:332 +0x131
cmd/compile/internal/escape.(*escape).rewriteArgument(0x0?, 0xc000125e98, 0x4166cf?, {0xe7e420, 0xc000125e60}, 0x3?, 0xc000446000?)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:340 +0x1c9
cmd/compile/internal/escape.(*escape).callCommon.func1(0x100?, {0xc00038ebe0?, 0x8?, 0x0?, 0x8b?}, 0xc000125e98)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:32 +0x85
cmd/compile/internal/escape.(*escape).callCommon.func2(...)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:38
cmd/compile/internal/escape.(*escape).callCommon(0xc000407f80, {0x0, 0x0?, 0x0}, {0xe7e420, 0xc000125e60}, 0x1?, 0x0?)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:159 +0x69c
cmd/compile/internal/escape.(*escape).goDeferStmt(0xc000407f80, 0xc000127a80)
/home/alberto/go/src/cmd/compile/internal/escape/call.go:247 +0x445
cmd/compile/internal/escape.(*escape).stmt(0xc000407f80, {0xe7f168, 0xc000127a80?})
/home/alberto/go/src/cmd/compile/internal/escape/stmt.go:180 +0xede
cmd/compile/internal/escape.(*escape).stmts(...)
/home/alberto/go/src/cmd/compile/internal/escape/stmt.go:190
cmd/compile/internal/escape.(*escape).block(0xc000407f80?, {0xc00010aca0?, 0x1?, 0xc00038eb40?})
/home/alberto/go/src/cmd/compile/internal/escape/stmt.go:197 +0x72
cmd/compile/internal/escape.(*batch).walkFunc(0xc00038eb40, 0xc000434dc0)
/home/alberto/go/src/cmd/compile/internal/escape/escape.go:227 +0xe5
cmd/compile/internal/escape.Batch({0xc0001224d8, 0x1, 0x1}, 0x30?)
/home/alberto/go/src/cmd/compile/internal/escape/escape.go:143 +0x21a
cmd/compile/internal/ir.(*bottomUpVisitor).visit(0xc000401680, 0xc000434dc0)
/home/alberto/go/src/cmd/compile/internal/ir/scc.go:127 +0x2f0
cmd/compile/internal/ir.VisitFuncsBottomUp({0xc00010acb0, 0x1, 0x2?}, 0xd3b0c8)
/home/alberto/go/src/cmd/compile/internal/ir/scc.go:60 +0x105
cmd/compile/internal/escape.Funcs(...)
/home/alberto/go/src/cmd/compile/internal/escape/escape.go:118
cmd/compile/internal/gc.Main(0xd3afa8)
/home/alberto/go/src/cmd/compile/internal/gc/main.go:282 +0xe74
main.main()
/home/alberto/go/src/cmd/compile/main.go:55 +0xdd
Reduced from a gosmith-generated program.
Compiles fine in go1.17. Tentatively labeling this as a release blocker since it's a compiler crasher on a valid program introduced during the current development cycle.