summary refs log tree commit diff stats
path: root/tests/gc/cyclecollector.nim
blob: 46fed6c45172db25f0736033728df0fe931a9aa5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Program to detect bug #1796 reliably

type
  Node = ref object
    a, b: Node
    leaf: string

proc createCycle(leaf: string): Node =
  new result
  result.a = result
  shallowCopy result.leaf, leaf

proc main =
  for i in 0 .. 100_000:
    var leaf = "this is the leaf. it allocates"
    let x = createCycle(leaf)
    let y = createCycle(leaf)
  echo "done ", getOccupiedMem()

main()