nim check fix; fixes #9609 [backport]

This commit is contained in:
Andreas Rumpf 2018-11-07 20:04:26 +01:00
commit 1c73db08b8

View file

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