From: Josh Bleecher Snyder Date: Thu, 23 Mar 2017 23:39:11 +0000 (-0700) Subject: cmd/compile: enforce no uses of Curfn in backend X-Git-Tag: go1.9beta1~978 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ef1ab0f0f4f56e9be490aaca43c799d2eeeed289;p=gostls13.git cmd/compile: enforce no uses of Curfn in backend Updates #15756 Change-Id: Id8d65ca9a3f1a7f9ea43e26cdd5e7d3befef8ba0 Reviewed-on: https://go-review.googlesource.com/38593 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/gen.go b/src/cmd/compile/internal/gc/gen.go index c6ef820f07..22705b47d1 100644 --- a/src/cmd/compile/internal/gc/gen.go +++ b/src/cmd/compile/internal/gc/gen.go @@ -225,5 +225,7 @@ func tempAt(pos src.XPos, curfn *Node, t *Type) *Node { // TODO(mdempsky/josharian): Remove all reads and writes of lineno and Curfn. lineno = pos Curfn = curfn - return temp(t) + n := temp(t) + Curfn = nil + return n } diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index c3030cb8eb..a525373e2f 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -299,6 +299,9 @@ func compile(fn *Node) { return } + // From this point, there should be no uses of Curfn. Enforce that. + Curfn = nil + // Build an SSA backend function. ssafn := buildssa(fn) if nerrors != 0 {