summary refs log tree commit diff stats
path: root/compiler/vm.nim
diff options
context:
space:
mode:
authorArne Döring <arne.doering@gmx.net>2017-07-17 08:12:15 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-07-17 08:12:15 +0200
commit52f092d02b5a4afa8cbd591bab9160e671f71700 (patch)
tree014875d219163f285d9e00137dcd19de0e106e79 /compiler/vm.nim
parent9427724a718ece9396d85fe8fa6a604b59f6bfd7 (diff)
downloadNim-52f092d02b5a4afa8cbd591bab9160e671f71700.tar.gz
Lineinfo change (#6084)
Diffstat (limited to 'compiler/vm.nim')
-rw-r--r--compiler/vm.nim20
1 files changed, 16 insertions, 4 deletions
diff --git a/compiler/vm.nim b/compiler/vm.nim
index b8e6467b5..908bbeb69 100644
--- a/compiler/vm.nim
+++ b/compiler/vm.nim
@@ -1307,12 +1307,24 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
       ensureKind(rkNode)
       if c.callsite != nil: regs[ra].node = c.callsite
       else: stackTrace(c, tos, pc, errFieldXNotFound, "callsite")
-    of opcNLineInfo:
+    of opcNGetFile:
       decodeB(rkNode)
       let n = regs[rb].node
-      createStr regs[ra]
-      regs[ra].node.strVal = n.info.toFileLineCol
-      regs[ra].node.info = c.debug[pc]
+      regs[ra].node = newStrNode(nkStrLit, n.info.toFilename)
+      regs[ra].node.info = n.info
+      regs[ra].node.typ = n.typ
+    of opcNGetLine:
+      decodeB(rkNode)
+      let n = regs[rb].node
+      regs[ra].node = newIntNode(nkIntLit, n.info.line)
+      regs[ra].node.info = n.info
+      regs[ra].node.typ = n.typ
+    of opcNGetColumn:
+      decodeB(rkNode)
+      let n = regs[rb].node
+      regs[ra].node = newIntNode(nkIntLit, n.info.col)
+      regs[ra].node.info = n.info
+      regs[ra].node.typ = n.typ
     of opcEqIdent:
       decodeBC(rkInt)
       if regs[rb].node.kind == nkIdent and regs[rc].node.kind == nkIdent: