1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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
|