From: Josh Bleecher Snyder Date: Wed, 19 Apr 2017 21:20:52 +0000 (-0700) Subject: cmd/compile: call fieldtrack after flushing Progs X-Git-Tag: go1.9beta1~604 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=33fd319cbcf9f4809c6bc9a9d21a05b516824f0a;p=gostls13.git cmd/compile: call fieldtrack after flushing Progs Fixes #20014 Change-Id: Ie58d3e989f2d7388b3d8849fbcfbceed3c6aa084 Reviewed-on: https://go-review.googlesource.com/41132 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Matthew Dempsky TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index c657d75461..090cbe427a 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -211,12 +211,13 @@ func compile(fn *Node) { ssafn := buildssa(fn) pp := newProgs(fn) genssa(ssafn, pp) - fieldtrack(pp.Text.From.Sym, fn.Func.FieldTrack) if pp.Text.To.Offset < 1<<31 { pp.Flush() } else { largeStackFrames = append(largeStackFrames, fn.Pos) } + // fieldtrack must be called after pp.Flush. See issue 20014. + fieldtrack(pp.Text.From.Sym, fn.Func.FieldTrack) pp.Free() }