diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2018-11-07 20:04:26 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-11-07 20:07:43 +0100 |
commit | 1c73db08b8d4f847f2868d8f5a3284cfb4e47428 (patch) | |
tree | c1a9e1d6dadc0a4a4e68964eb4b341083370ffe8 | |
parent | 08de33a2e38b8bf859276dbf2d4c1eda87b6a459 (diff) | |
download | Nim-1c73db08b8d4f847f2868d8f5a3284cfb4e47428.tar.gz |
nim check fix; fixes #9609 [backport]
-rw-r--r-- | compiler/vmgen.nim | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index 79c75f607..00ec22a99 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -1115,13 +1115,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) |