From a5386f3c7dc7735aa4695647896ba94bab0341e0 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 18 Apr 2016 13:55:40 -0700 Subject: [PATCH] cmd/compile: fix internal consistency check with binary exporter 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 Reviewed-by: Matthew Dempsky TryBot-Result: Gobot Gobot --- src/cmd/compile/internal/gc/bexport.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go index eee71291be..90b4edff18 100644 --- a/src/cmd/compile/internal/gc/bexport.go +++ b/src/cmd/compile/internal/gc/bexport.go @@ -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