diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/injectdestructors.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim index 71ba61fb6..6ec8193d1 100644 --- a/compiler/injectdestructors.nim +++ b/compiler/injectdestructors.nim @@ -425,6 +425,9 @@ proc sinkParamIsLastReadCheck(c: var Con, s: PNode) = proc passCopyToSink(n: PNode; c: var Con): PNode = result = newNodeIT(nkStmtListExpr, n.info, n.typ) let tmp = getTemp(c, n.typ, n.info) + # XXX This is only required if we are in a loop. Since we move temporaries + # out of loops we need to mark it as 'wasMoved'. + result.add genWasMoved(tmp, c) if hasDestructor(n.typ): var m = genCopy(c, n.typ, tmp, n) m.add p(n, c) |