summary refs log blame commit diff stats
path: root/tests/ccgbugs/tlvalueconv.nim
blob: b2cb11eefb5dfcbe63fa3a90e49b7e47ffa98d42 (plain) (tree)
1
2
3
4
5
6





                               












                                                 
                      

      









                                                                                   
discard """
  matrix: "--gc:refc; --gc:arc"
"""

# bug #14160

type
  TPassContext = object of RootObj
  PPassContext = ref TPassContext

  PCtx = ref object of TPassContext
    a: int

  ModuleGraph = object
    vm: RootRef

proc main() =
  var g = ModuleGraph(vm: new(Pctx))
  PCtx(g.vm) = nil #This generates invalid C code
  doAssert g.vm == nil

main()

# bug #14325

proc main2() =
  var g = ModuleGraph(vm: new(Pctx))
  PPassContext(PCtx(g.vm)) = nil #This compiles, but crashes at runtime with gc:arc
  doAssert g.vm == nil

main2()