aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/walk
diff options
context:
space:
mode:
authorCuong Manh Le <cuong.manhle.vn@gmail.com>2021-04-23 12:53:51 +0700
committerCuong Manh Le <cuong.manhle.vn@gmail.com>2021-04-23 17:36:11 +0000
commit8c666697646bc820beb3725b3ff4a4cd5514bbe7 (patch)
treed9e7b655ed82f0e6a8cf17750dd334f0b8a7e9a7 /src/cmd/compile/internal/walk
parentd4bfe006155ea0d9c2970e22fca5a027125c8a98 (diff)
downloadgo-8c666697646bc820beb3725b3ff4a4cd5514bbe7.tar.gz
go-8c666697646bc820beb3725b3ff4a4cd5514bbe7.zip
cmd/compile: make sure ascompatee walk lhs init statements
CL 281152 improved ascompatee by removing the call to safeExpr on lhs. But we forgot that lhs int statements, if any, must be walked prior saving subexpressions, which cause the bug in #45706. Fixes #45706 Change-Id: I0064315056ef4ca92ebf3c332c2e3a9bb2b26f68 Reviewed-on: https://go-review.googlesource.com/c/go/+/312632 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/walk')
-rw-r--r--src/cmd/compile/internal/walk/assign.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/walk/assign.go b/src/cmd/compile/internal/walk/assign.go
index c8342b4fa4..3abf2a060c 100644
--- a/src/cmd/compile/internal/walk/assign.go
+++ b/src/cmd/compile/internal/walk/assign.go
@@ -341,6 +341,9 @@ func ascompatee(op ir.Op, nl, nr []ir.Node) []ir.Node {
break
}
+ walkStmtList(l.Init())
+ early.Append(ir.TakeInit(l)...)
+
var name *ir.Name
switch l.Op() {
default: