diff options
Diffstat (limited to 'tests/destructor/tarc2.nim')
-rw-r--r-- | tests/destructor/tarc2.nim | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/destructor/tarc2.nim b/tests/destructor/tarc2.nim new file mode 100644 index 000000000..a7d7b4945 --- /dev/null +++ b/tests/destructor/tarc2.nim @@ -0,0 +1,31 @@ +discard """ + output: '''leak: false''' + cmd: '''nim c --gc:orc $file''' +""" + +type + T = ref object + s: seq[T] + data: string + +proc create(): T = T(s: @[], data: "abc") + +proc addX(x: T; data: string) = + x.data = data + +{.push sinkInference: off.} + +proc addX(x: T; child: T) = + x.s.add child + +{.pop.} + +proc main(rootName: string) = + var root = create() + root.data = rootName + root.addX root + +let mem = getOccupiedMem() +main("yeah") +GC_fullCollect() +echo "leak: ", getOccupiedMem() - mem > 0 |