diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/sempass2.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/sempass2.nim b/compiler/sempass2.nim index 437a45817..8193a3537 100644 --- a/compiler/sempass2.nim +++ b/compiler/sempass2.nim @@ -577,6 +577,9 @@ proc trackOperand(tracked: PEffects, n: PNode, paramType: PType) = markGcUnsafe(tracked, a) elif tfNoSideEffect notin op.flags: markSideEffect(tracked, a) + if paramType != nil and paramType.kind == tyVar: + if n.kind == nkSym and isLocalVar(tracked, n.sym): + makeVolatile(tracked, n.sym) notNilCheck(tracked, n, paramType) proc breaksBlock(n: PNode): bool = |