Fix for newStringOfCap in VM (#7901)

This commit is contained in:
Oscar Nihlgård
2018-06-04 13:38:26 +02:00
committed by Andreas Rumpf
parent 59ba1e77af
commit 440212a154
2 changed files with 10 additions and 1 deletions

View File

@@ -844,7 +844,8 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest; m: TMagic) =
of mNewStringOfCap:
# we ignore the 'cap' argument and translate it as 'newString(0)'.
# eval n.sons[1] for possible side effects:
var tmp = c.genx(n.sons[1])
c.freeTemp(c.genx(n.sons[1]))
var tmp = c.getTemp(n.sons[1].typ)
c.gABx(n, opcLdImmInt, tmp, 0)
if dest < 0: dest = c.getTemp(n.typ)
c.gABC(n, opcNewStr, dest, tmp)

View File

@@ -82,3 +82,11 @@ block:
assert fileExists("MISSINGFILE") == false
assert dirExists("MISSINGDIR") == false
# #7210
block:
static:
proc f(size: int): int =
var some = newStringOfCap(size)
result = size
doAssert f(4) == 4