summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2018-11-07 20:04:26 +0100
committerAndreas Rumpf <rumpf_a@web.de>2018-11-07 20:07:43 +0100
commit1c73db08b8d4f847f2868d8f5a3284cfb4e47428 (patch)
treec1a9e1d6dadc0a4a4e68964eb4b341083370ffe8
parent08de33a2e38b8bf859276dbf2d4c1eda87b6a459 (diff)
downloadNim-1c73db08b8d4f847f2868d8f5a3284cfb4e47428.tar.gz
nim check fix; fixes #9609 [backport]
-rw-r--r--compiler/vmgen.nim15
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)