aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/walk/stmt.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/walk/stmt.go')
-rw-r--r--src/cmd/compile/internal/walk/stmt.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/walk/stmt.go b/src/cmd/compile/internal/walk/stmt.go
index 4581bca3df..f09e916546 100644
--- a/src/cmd/compile/internal/walk/stmt.go
+++ b/src/cmd/compile/internal/walk/stmt.go
@@ -136,6 +136,14 @@ func walkStmt(n ir.Node) ir.Node {
case ir.OTAILCALL:
n := n.(*ir.TailCallStmt)
+
+ var init ir.Nodes
+ n.Call.X = walkExpr(n.Call.X, &init)
+
+ if len(init) > 0 {
+ init.Append(n)
+ return ir.NewBlockStmt(n.Pos(), init)
+ }
return n
case ir.OINLMARK: