summary refs log tree commit diff stats
path: root/compiler/vm.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-10-15 09:31:43 +0200
committerAraq <rumpf_a@web.de>2015-10-15 09:31:54 +0200
commitc97cbe7abd85d134e95ad1a7044fc314c60e5bed (patch)
tree018959820cb3510daf9db092946a7a210c384cc6 /compiler/vm.nim
parent7d6c9143d70d1ba09ef43d1580a0ad870d46e2a6 (diff)
downloadNim-c97cbe7abd85d134e95ad1a7044fc314c60e5bed.tar.gz
fixes #3299
Diffstat (limited to 'compiler/vm.nim')
-rw-r--r--compiler/vm.nim5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/vm.nim b/compiler/vm.nim
index ded66d3d0..7ba4aaeb6 100644
--- a/compiler/vm.nim
+++ b/compiler/vm.nim
@@ -511,7 +511,10 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
       regs[ra].regAddr = addr(regs[rb])
     of opcAddrNode:
       decodeB(rkNodeAddr)
-      regs[ra].nodeAddr = addr(regs[rb].node)
+      if regs[rb].kind == rkNode:
+        regs[ra].nodeAddr = addr(regs[rb].node)
+      else:
+        stackTrace(c, tos, pc, errGenerated, "limited VM support for 'addr'")
     of opcLdDeref:
       # a = b[]
       let ra = instr.regA