-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Closed
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.release-blocker
Milestone
Description
$ gotip version
go version devel +cd037bce09 Tue Apr 24 16:11:41 2018 +0000 linux/amd64
The following 2-packages program (reduced from a gosmith-generated one):
b/b.go
package b
type T chan *interface{}
var B = (T)(nil)
a/a.go
package a
import "b"
var A = (<-(b.B))
crashes the tip compiler (when building a) with:
# command-line-arguments
<autogenerated>:1: internal compiler error: width not calculated: interface {}
goroutine 7 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
/home/alberto/go/src/runtime/debug/stack.go:24 +0xa7
cmd/compile/internal/gc.Fatalf(0xc0d28a, 0x18, 0xc0004d9298, 0x1, 0x1)
/home/alberto/go/src/cmd/compile/internal/gc/subr.go:182 +0x1f7
cmd/compile/internal/gc.dowidth(0xc000358f00)
/home/alberto/go/src/cmd/compile/internal/gc/align.go:193 +0x192
cmd/compile/internal/types.(*Type).Fields(0xc000358f00, 0x0)
/home/alberto/go/src/cmd/compile/internal/types/type.go:871 +0x6c
cmd/compile/internal/types.(*Type).NumFields(0xc000358f00, 0xc05a21)
/home/alberto/go/src/cmd/compile/internal/types/type.go:1330 +0x2b
cmd/compile/internal/types.(*Type).IsEmptyInterface(0xc000358f00, 0xbf6560)
/home/alberto/go/src/cmd/compile/internal/types/type.go:1317 +0x41
cmd/compile/internal/gc.typefmt(0xc000358f00, 0x0, 0x2, 0x2, 0xc000394c20, 0x0)
/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:745 +0x1c1b
cmd/compile/internal/gc.tconv(0xc000358f00, 0x0, 0x2, 0x1, 0xc000394d40, 0x120000c000502320)
/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1763 +0xca
cmd/compile/internal/gc.tmodeString(0xc000358f00, 0x2, 0x1, 0x7f5365bea001, 0x1000000)
/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1669 +0x48
cmd/compile/internal/gc.typefmt(0xc000358f60, 0x0, 0x2, 0x1, 0xc0004bc3b9, 0xc0004d99d0)
/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:716 +0x4dd
cmd/compile/internal/gc.tconv(0xc000358f60, 0x1, 0x0, 0x0, 0x4108c3, 0xc0000185d0)
/home/alberto/go/src/cmd/compile/internal/gc/fmt.go:1763 +0xca
cmd/compile/internal/gc.Main.func2(0xc000358f60, 0x1, 0x0, 0x0, 0x40ab8f, 0xc0004c20c0)
/home/alberto/go/src/cmd/compile/internal/gc/main.go:439 +0x49
cmd/compile/internal/types.(*Type).ShortString(0xc000358f60, 0xc0004d9ab0, 0x4d683c)
/home/alberto/go/src/cmd/compile/internal/types/utils.go:56 +0x53
cmd/compile/internal/gc.typesymname(0xc000358f60, 0xc00000e240, 0x120000c0004bc3a8)
/home/alberto/go/src/cmd/compile/internal/gc/reflect.go:925 +0x2f
cmd/compile/internal/gc.typesym(0xc000358f60, 0xc000358f00)
/home/alberto/go/src/cmd/compile/internal/gc/reflect.go:948 +0x2b
cmd/compile/internal/gc.typenamesym(0xc000358f60, 0x7)
/home/alberto/go/src/cmd/compile/internal/gc/reflect.go:970 +0xb1
cmd/compile/internal/gc.ngotype(0xc000349e00, 0x0)
/home/alberto/go/src/cmd/compile/internal/gc/subr.go:1887 +0x34
cmd/compile/internal/gc.debuginfo(0xc000314ee0, 0xbf6560, 0xc0004a8000, 0xc000314fc0, 0xc000315030, 0x0, 0xc0003150a0, 0x0, 0x180)
/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:356 +0x1ca
cmd/internal/obj.(*Link).populateDWARF(0xc00000e240, 0xbf6560, 0xc0004a8000, 0xc000314ee0, 0x7ffea36f72b8, 0x16)
/home/alberto/go/src/cmd/internal/obj/objfile.go:551 +0x548
cmd/internal/obj.Flushplist(0xc00000e240, 0xc0004d9f08, 0xc0004c60d0, 0x7ffea36f72b8, 0x16)
/home/alberto/go/src/cmd/internal/obj/plist.go:109 +0x715
cmd/compile/internal/gc.(*Progs).Flush(0xc000502280)
/home/alberto/go/src/cmd/compile/internal/gc/gsubr.go:87 +0xbc
cmd/compile/internal/gc.compileSSA(0xc0004a8000, 0x0)
/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:268 +0x184
cmd/compile/internal/gc.compileFunctions.func2(0xc0004ac240, 0xc000018610, 0x0)
/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:309 +0x49
created by cmd/compile/internal/gc.compileFunctions
/home/alberto/go/src/cmd/compile/internal/gc/pgen.go:307 +0x11a
The compiler does not crash if passed -iexport=false.
cc @mdempsky
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.release-blocker