nim check fix; fixes #9609 [backport]

(cherry picked from commit 1c73db08b8)
This commit is contained in:
Andreas Rumpf
2018-11-07 20:04:26 +01:00
committed by narimiran
parent 4cece52524
commit 5f7679cb50

View File

@@ -1088,13 +1088,14 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest; m: TMagic) =
of mEcho:
unused(c, n, dest)
let n = n[1].skipConv
let x = c.getTempRange(n.len, slotTempUnknown)
internalAssert c.config, n.kind == nkBracket
for i in 0..<n.len:
var r: TRegister = x+i
c.gen(n.sons[i], r)
c.gABC(n, opcEcho, x, n.len)
c.freeTempRange(x, n.len)
if n.kind == nkBracket:
# can happen for nim check, see bug #9609
let x = c.getTempRange(n.len, slotTempUnknown)
for i in 0..<n.len:
var r: TRegister = x+i
c.gen(n.sons[i], r)
c.gABC(n, opcEcho, x, n.len)
c.freeTempRange(x, n.len)
of mAppendStrCh:
unused(c, n, dest)
genBinaryStmtVar(c, n, opcAddStrCh)