aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/escape/expr.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/escape/expr.go')
-rw-r--r--src/cmd/compile/internal/escape/expr.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/escape/expr.go b/src/cmd/compile/internal/escape/expr.go
index fd758bbf20..fc56530969 100644
--- a/src/cmd/compile/internal/escape/expr.go
+++ b/src/cmd/compile/internal/escape/expr.go
@@ -126,6 +126,10 @@ func (e *escape) exprSkipInit(k hole, n ir.Node) {
case ir.OITAB, ir.OIDATA, ir.OSPTR:
n := n.(*ir.UnaryExpr)
e.expr(k, n.X)
+ case ir.OSLICE2ARR:
+ // Converting a slice to array is effectively a deref.
+ n := n.(*ir.ConvExpr)
+ e.expr(k.deref(n, "slice-to-array"), n.X)
case ir.OSLICE2ARRPTR:
// the slice pointer flows directly to the result
n := n.(*ir.ConvExpr)