Skip to content
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

cmd/compile: internal compiler error: cannot export NONAME node #15838

Closed
dsnet opened this issue May 25, 2016 · 3 comments
Closed

cmd/compile: internal compiler error: cannot export NONAME node #15838

dsnet opened this issue May 25, 2016 · 3 comments
Milestone

Comments

@dsnet
Copy link
Member

dsnet commented May 25, 2016

Commit ef62f64 caused this issue.

Running the following causes an error (whereas it passes before on go1.6):

$ go test github.com/dsnet/compress/bzip2
# github.com/dsnet/compress/bzip2
./writer_test.go:56: internal compiler error: cannot export NONAME (2) node
==> please file an issue and assign to gri@


goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /usr/local/go.tip/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x8db3d8, 0x47, 0xc420f71740, 0x2, 0x2)
    /usr/local/go.tip/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.(*exporter).expr(0xc420f71980, 0xc420620b40)
    /usr/local/go.tip/src/cmd/compile/internal/gc/bexport.go:1344 +0x36c
cmd/compile/internal/gc.(*exporter).stmt(0xc420f71980, 0xc420620bd0)
    /usr/local/go.tip/src/cmd/compile/internal/gc/bexport.go:1467 +0x59a
cmd/compile/internal/gc.(*exporter).stmtList(0xc420f71980, 0xc420611160)
    /usr/local/go.tip/src/cmd/compile/internal/gc/bexport.go:1063 +0xec
cmd/compile/internal/gc.export(0xc420977680, 0x0, 0x0)
    /usr/local/go.tip/src/cmd/compile/internal/gc/bexport.go:380 +0x947
cmd/compile/internal/gc.dumpexport()
    /usr/local/go.tip/src/cmd/compile/internal/gc/export.go:410 +0x397
cmd/compile/internal/gc.dumpobj1(0x7ffea48393d6, 0x5e, 0x3)
    /usr/local/go.tip/src/cmd/compile/internal/gc/obj.go:89 +0xe37
cmd/compile/internal/gc.dumpobj()
    /usr/local/go.tip/src/cmd/compile/internal/gc/obj.go:45 +0x48
cmd/compile/internal/gc.Main()
    /usr/local/go.tip/src/cmd/compile/internal/gc/main.go:488 +0x1a4d
cmd/compile/internal/amd64.Main()
    /usr/local/go.tip/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /usr/local/go.tip/src/cmd/compile/main.go:33 +0x286

FAIL    github.com/dsnet/compress/bzip2 [build failed]

The target repo is dsnet/compress@235e5e4.

/cc @mdempsky @griesemer

@dsnet dsnet added this to the Go1.7 milestone May 25, 2016
@griesemer griesemer self-assigned this May 25, 2016
@griesemer
Copy link
Contributor

Small reproducible case.
a.go:

package a
type T struct{}
func (T) M() {
    L: goto L
}

b.go:

package b
import "./a"
type T struct { a.T }

Then compile a.go, b.go:

$ go tool compile a.go && go tool compile b.go
b.go:4: internal compiler error: cannot export NONAME (2) node
==> please file an issue and assign to gri@


goroutine 1 [running]:
runtime/debug.Stack(0x0, 0x0, 0x0)
    /Users/gri/go/src/runtime/debug/stack.go:24 +0x6f
cmd/compile/internal/gc.Fatalf(0x4db6c7, 0x47, 0xc420447750, 0x2, 0x2)
    /Users/gri/go/src/cmd/compile/internal/gc/subr.go:165 +0x236
cmd/compile/internal/gc.(*exporter).expr(0xc420447990, 0xc42043e2d0)
    /Users/gri/go/src/cmd/compile/internal/gc/bexport.go:1381 +0x36c
cmd/compile/internal/gc.(*exporter).stmt(0xc420447990, 0xc42043e360)
    /Users/gri/go/src/cmd/compile/internal/gc/bexport.go:1504 +0x59a
cmd/compile/internal/gc.(*exporter).stmtList(0xc420447990, 0xc420419ee0)
    /Users/gri/go/src/cmd/compile/internal/gc/bexport.go:1100 +0xec
cmd/compile/internal/gc.export(0xc4204309c0, 0x0, 0x0)
    /Users/gri/go/src/cmd/compile/internal/gc/bexport.go:417 +0x947
cmd/compile/internal/gc.dumpexport()
    /Users/gri/go/src/cmd/compile/internal/gc/export.go:410 +0x397
cmd/compile/internal/gc.dumpobj1(0xc420422976, 0x3, 0x3)
    /Users/gri/go/src/cmd/compile/internal/gc/obj.go:89 +0xe37
cmd/compile/internal/gc.dumpobj()
    /Users/gri/go/src/cmd/compile/internal/gc/obj.go:45 +0x48
cmd/compile/internal/gc.Main()
    /Users/gri/go/src/cmd/compile/internal/gc/main.go:488 +0x1a4d
cmd/compile/internal/amd64.Main()
    /Users/gri/go/src/cmd/compile/internal/amd64/galign.go:96 +0x381
main.main()
    /Users/gri/go/src/cmd/compile/main.go:33 +0x286

@mdempsky
Copy link
Member

@griesemer Seems like OGOTO, OLABEL, etc. could encode their Label as a bare string, rather than an ONONAME node?

@griesemer
Copy link
Contributor

Yes. But I opted for correctly replicating the code that was used with the textual exporter: https://go-review.googlesource.com/23445 .

@golang golang locked and limited conversation to collaborators May 26, 2017
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