aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/escape
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2021-01-04 02:24:48 -0800
committerMatthew Dempsky <mdempsky@google.com>2021-01-10 08:02:16 +0000
commitc9c26d7ffb3c4077ffaa80f7c8e2d550528e1445 (patch)
tree21e3971160c7b871237f8fb9453efb25c4d7f8f5 /src/cmd/compile/internal/escape
parent950cf4d46c5bc343644e7ef08828b9e5114d4676 (diff)
downloadgo-c9c26d7ffb3c4077ffaa80f7c8e2d550528e1445.tar.gz
go-c9c26d7ffb3c4077ffaa80f7c8e2d550528e1445.zip
[dev.regabi] cmd/compile: use ClosureVars for method value wrappers
Similar to with regular closures, we can change method value wrappers to use ClosureVars and allow SSA construction to take care of wiring it up appropriately. Change-Id: I05c0b1bcec4e24305324755df35b7bc5b8a6ce7a Reviewed-on: https://go-review.googlesource.com/c/go/+/281353 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/escape')
-rw-r--r--src/cmd/compile/internal/escape/escape.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/escape/escape.go b/src/cmd/compile/internal/escape/escape.go
index 5df82d8cdc..9b9b8f6a58 100644
--- a/src/cmd/compile/internal/escape/escape.go
+++ b/src/cmd/compile/internal/escape/escape.go
@@ -583,6 +583,9 @@ func (e *escape) exprSkipInit(k hole, n ir.Node) {
if n.Class == ir.PFUNC || n.Class == ir.PEXTERN {
return
}
+ if n.IsClosureVar() && n.Defn == nil {
+ return // ".this" from method value wrapper
+ }
e.flow(k, e.oldLoc(n))
case ir.ONAMEOFFSET: