parent
e20af5cec6
commit
1d6018726e
2 changed files with 17 additions and 0 deletions
|
|
@ -577,6 +577,9 @@ proc trackOperand(tracked: PEffects, n: PNode, paramType: PType) =
|
||||||
markGcUnsafe(tracked, a)
|
markGcUnsafe(tracked, a)
|
||||||
elif tfNoSideEffect notin op.flags:
|
elif tfNoSideEffect notin op.flags:
|
||||||
markSideEffect(tracked, a)
|
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)
|
notNilCheck(tracked, n, paramType)
|
||||||
|
|
||||||
proc breaksBlock(n: PNode): bool =
|
proc breaksBlock(n: PNode): bool =
|
||||||
|
|
|
||||||
14
tests/ccgbugs/t5296.nim
Normal file
14
tests/ccgbugs/t5296.nim
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
discard """
|
||||||
|
cmd: "nim c -d:release $file"
|
||||||
|
output: 1
|
||||||
|
"""
|
||||||
|
|
||||||
|
proc bug() : void =
|
||||||
|
var x = 0
|
||||||
|
try:
|
||||||
|
inc x
|
||||||
|
raise new(Exception)
|
||||||
|
except Exception:
|
||||||
|
echo x
|
||||||
|
|
||||||
|
bug()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue