Skip to content

cmd:compile: internal compiler error: cannot export TYPESW (130) node #19679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ALTree opened this issue Mar 23, 2017 · 3 comments
Closed

cmd:compile: internal compiler error: cannot export TYPESW (130) node #19679

ALTree opened this issue Mar 23, 2017 · 3 comments
Milestone

Comments

@ALTree
Copy link
Member

ALTree commented Mar 23, 2017

go version devel +e95989c1c1 Thu Mar 23 17:57:25 2017 +0000 linux/amd64

The following program:

package p

func Crash() {
	var i interface{}
	if false {
		switch i.(type) {
		}
	}
}

crashes the compiler on tip, but not in go1.8 and older.

<autogenerated>:1:0: internal compiler error: cannot export TYPESW (130) node
==> please file an issue and assign to gri@


goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
	/home/alberto/go/src/runtime/debug/stack.go:24 +0x79
cmd/compile/internal/gc.Fatalf(0xad7b7b, 0x47, 0xc420361540, 0x2, 0x2)
	/home/alberto/go/src/cmd/compile/internal/gc/subr.go:175 +0x230
cmd/compile/internal/gc.(*exporter).expr(0xc4203618a8, 0xc4202dfe60)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1414 +0x38e
cmd/compile/internal/gc.(*exporter).exprsOrNil(0xc4203618a8, 0xc4202dfe60, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1558 +0xa2
cmd/compile/internal/gc.(*exporter).stmt(0xc4203618a8, 0xc4202dfdd0)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1517 +0x787
cmd/compile/internal/gc.(*exporter).stmtList(0xc4203618a8, 0xc4202d5d00)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1109 +0xf0
cmd/compile/internal/gc.(*exporter).stmt(0xc4203618a8, 0xc4202dfcb0)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1496 +0x6c4
cmd/compile/internal/gc.(*exporter).stmtList(0xc4203618a8, 0xc4202d5e80)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:1109 +0xf0
cmd/compile/internal/gc.export(0xc4202dd800, 0x0, 0x0)
	/home/alberto/go/src/cmd/compile/internal/gc/bexport.go:388 +0x8ae
cmd/compile/internal/gc.dumpexport()
	/home/alberto/go/src/cmd/compile/internal/gc/export.go:185 +0x8a
cmd/compile/internal/gc.dumpobj1(0x7ffee3a8a1fe, 0x2f, 0x3)
	/home/alberto/go/src/cmd/compile/internal/gc/obj.go:93 +0xa5d
cmd/compile/internal/gc.dumpobj()
	/home/alberto/go/src/cmd/compile/internal/gc/obj.go:49 +0x61
cmd/compile/internal/gc.Main(0xada2d8)
	/home/alberto/go/src/cmd/compile/internal/gc/main.go:540 +0x1fee
main.main()
	/home/alberto/go/src/cmd/compile/main.go:49 +0x95

cc @griesemer

@griesemer
Copy link
Contributor

I guess we are inlining more functions now than in the past.

@griesemer griesemer added this to the Go1.9 milestone Mar 23, 2017
@josharian
Copy link
Contributor

Probably caused by 566e72d (CL 37499). The fix is probably to ignore such dead code when exporting.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/38601 mentions this issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants