]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: call fieldtrack after flushing Progs
authorJosh Bleecher Snyder <josharian@gmail.com>
Wed, 19 Apr 2017 21:20:52 +0000 (14:20 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Wed, 19 Apr 2017 21:45:56 +0000 (21:45 +0000)
Fixes #20014

Change-Id: Ie58d3e989f2d7388b3d8849fbcfbceed3c6aa084
Reviewed-on: https://go-review.googlesource.com/41132
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

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

index c657d75461435fc4477a5fff583706efb332c6c0..090cbe427aed22dced1ea90617a36c66a8d41bb5 100644 (file)
@@ -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()
 }