]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix internal consistency check with binary exporter
authorRobert Griesemer <gri@golang.org>
Mon, 18 Apr 2016 20:55:40 +0000 (13:55 -0700)
committerRobert Griesemer <gri@golang.org>
Mon, 18 Apr 2016 22:00:31 +0000 (22:00 +0000)
Per feedback from mdempsky from https://go-review.googlesource.com/22096.

Also fix emitted position info.

Change-Id: I7ff1967430867d922be8784832042c75d81df28b
Reviewed-on: https://go-review.googlesource.com/22198
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/bexport.go

index eee71291beb537965d14b8afdd326c38fee942a5..90b4edff18e77609834b7175af1d76239f21bfda 100644 (file)
@@ -558,16 +558,13 @@ func (p *exporter) typ(t *Type) {
                        Fatalf("exporter: predeclared type missing from type map?")
                }
 
-               // TODO(gri) The assertion below is incorrect (crashes during all.bash),
-               // likely because of symbol shadowing (we expect the respective definition
-               // to point to us). Determine the correct Def so we get correct position
-               // info.
-               // if tsym.Def.Type != t {
-               //      Fatalf("exporter: type definition doesn't point to us?")
-               // }
+               n := typenod(t)
+               if n.Type != t {
+                       Fatalf("exporter: named type definition incorrectly set up")
+               }
 
                p.tag(namedTag)
-               p.pos(tsym.Def) // TODO(gri) this may not be the correct node - fix and add tests
+               p.pos(n)
                p.qualifiedName(tsym)
 
                // write underlying type