diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim index 96dc86bfd2..3317ba6270 100644 --- a/lib/system/mmdisp.nim +++ b/lib/system/mmdisp.nim @@ -57,6 +57,16 @@ elif defined(gogc): elif (defined(nogc) or defined(gcDestructors)) and defined(useMalloc): include system / mm / malloc + when defined(nogc): + proc GC_getStatistics(): string = "" + proc newObj(typ: PNimType, size: int): pointer {.compilerproc.} = + result = alloc0(size) + + proc newSeq(typ: PNimType, len: int): pointer {.compilerproc.} = + result = newObj(typ, align(GenericSeqSize, typ.align) + len * typ.base.size) + cast[PGenericSeq](result).len = len + cast[PGenericSeq](result).reserved = len + elif defined(nogc): include system / mm / none diff --git a/tests/system/tgcnone.nim b/tests/system/tgcnone.nim new file mode 100644 index 0000000000..700176d5f8 --- /dev/null +++ b/tests/system/tgcnone.nim @@ -0,0 +1,6 @@ +discard """ + matrix: "--gc:none -d:useMalloc" +""" +# bug #15617 +let x = 4 +doAssert x == 4