From e79c23822cf197ffb90e4984161d479f0abb73f3 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Sat, 12 Oct 2019 08:47:51 +0700 Subject: [PATCH] cmd/compile: move OAS2 to its own case in order Change-Id: Id0f4955588ae8027a24465b456c90d0543d60db2 Reviewed-on: https://go-review.googlesource.com/c/go/+/200581 Run-TryBot: Cuong Manh Le TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/order.go | 41 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/src/cmd/compile/internal/gc/order.go b/src/cmd/compile/internal/gc/order.go index 176d7a3cce..0e28f8267f 100644 --- a/src/cmd/compile/internal/gc/order.go +++ b/src/cmd/compile/internal/gc/order.go @@ -513,26 +513,6 @@ func (o *Order) stmt(n *Node) { o.mapAssign(n) o.cleanTemp(t) - case OAS2, - OCLOSE, - OCOPY, - OPRINT, - OPRINTN, - ORECOVER, - ORECV: - t := o.markTemp() - n.Left = o.expr(n.Left, nil) - n.Right = o.expr(n.Right, nil) - o.exprList(n.List) - o.exprList(n.Rlist) - switch n.Op { - case OAS2: - o.mapAssign(n) - default: - o.out = append(o.out, n) - } - o.cleanTemp(t) - case OASOP: t := o.markTemp() n.Left = o.expr(n.Left, nil) @@ -562,6 +542,13 @@ func (o *Order) stmt(n *Node) { o.mapAssign(n) o.cleanTemp(t) + case OAS2: + t := o.markTemp() + o.exprList(n.List) + o.exprList(n.Rlist) + o.mapAssign(n) + o.cleanTemp(t) + // Special: avoid copy of func call n.Right case OAS2FUNC: t := o.markTemp() @@ -620,6 +607,20 @@ func (o *Order) stmt(n *Node) { o.out = append(o.out, n) o.cleanTemp(t) + case OCLOSE, + OCOPY, + OPRINT, + OPRINTN, + ORECOVER, + ORECV: + t := o.markTemp() + n.Left = o.expr(n.Left, nil) + n.Right = o.expr(n.Right, nil) + o.exprList(n.List) + o.exprList(n.Rlist) + o.out = append(o.out, n) + o.cleanTemp(t) + // Special: order arguments to inner call but not call itself. case ODEFER, OGO: t := o.markTemp() -- 2.50.0