]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: respect -newescape in genwrapper
authorMatthew Dempsky <mdempsky@google.com>
Mon, 22 Apr 2019 23:08:43 +0000 (16:08 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Tue, 23 Apr 2019 17:33:29 +0000 (17:33 +0000)
Noticed while preparing a CL for Go 1.14 to remove esc.go.

Change-Id: Ic12be33f5b16c8424d85f373fa450247be086078
Reviewed-on: https://go-review.googlesource.com/c/go/+/173298
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/gc/esc.go
src/cmd/compile/internal/gc/subr.go

index ceefde74a1972474eebc023dc707e4bf77b3292e..ded9439a14cc4bc3ad467ef2c688a73a8166139c 100644 (file)
@@ -46,11 +46,14 @@ import (
 var newescape bool
 
 func escapes(all []*Node) {
-       esc := escAnalyze
+       visitBottomUp(all, escapeImpl())
+}
+
+func escapeImpl() func([]*Node, bool) {
        if newescape {
-               esc = escapeFuncs
+               return escapeFuncs
        }
-       visitBottomUp(all, esc)
+       return escAnalyze
 }
 
 const (
index 04dd2f7c2d1492c89648883beecc1d769d12c791..fc60eeb04331f938637c2bdda2ce89b9bde4157e 100644 (file)
@@ -1574,7 +1574,7 @@ func genwrapper(rcvr *types.Type, method *types.Field, newnam *types.Sym) {
        if rcvr.IsPtr() && rcvr.Elem() == method.Type.Recv().Type && rcvr.Elem().Sym != nil {
                inlcalls(fn)
        }
-       escAnalyze([]*Node{fn}, false)
+       escapeImpl()([]*Node{fn}, false)
 
        Curfn = nil
        funccompile(fn)