]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/compile/internal/escape/call.go
cmd/compile: implement range over func
[gostls13.git] / src / cmd / compile / internal / escape / call.go
index 360094ee44f258a32a7549106acba7107dbebc81..2bc87d4f8ee39236ee0a4439ffe6d6805b1930a0 100644 (file)
@@ -185,7 +185,7 @@ func (e *escape) call(ks []hole, call ir.Node) {
 // goDeferStmt analyzes a "go" or "defer" statement.
 func (e *escape) goDeferStmt(n *ir.GoDeferStmt) {
        k := e.heapHole()
-       if n.Op() == ir.ODEFER && e.loopDepth == 1 {
+       if n.Op() == ir.ODEFER && e.loopDepth == 1 && n.DeferAt == nil {
                // Top-level defer arguments don't escape to the heap,
                // but they do need to last until they're invoked.
                k = e.later(e.discardHole())