fixes #933
This commit is contained in:
parent
d3c79cec80
commit
39ce17a73e
2 changed files with 18 additions and 5 deletions
|
|
@ -671,14 +671,11 @@ proc rawExecute(c: PCtx, start: int, tos: PStackFrame): TFullReg =
|
||||||
of opcLtu:
|
of opcLtu:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
regs[ra].intVal = ord(regs[rb].intVal <% regs[rc].intVal)
|
||||||
of opcEqRef:
|
of opcEqRef, opcEqNimrodNode:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord((regs[rb].node.kind == nkNilLit and
|
regs[ra].intVal = ord((regs[rb].node.kind == nkNilLit and
|
||||||
regs[rc].node.kind == nkNilLit) or
|
regs[rc].node.kind == nkNilLit) or
|
||||||
regs[rb].node == regs[rc].node)
|
regs[rb].node == regs[rc].node)
|
||||||
of opcEqNimrodNode:
|
|
||||||
decodeBC(rkInt)
|
|
||||||
regs[ra].intVal = ord(regs[rb].node == regs[rc].node)
|
|
||||||
of opcXor:
|
of opcXor:
|
||||||
decodeBC(rkInt)
|
decodeBC(rkInt)
|
||||||
regs[ra].intVal = ord(regs[rb].intVal != regs[rc].intVal)
|
regs[ra].intVal = ord(regs[rb].intVal != regs[rc].intVal)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,10 @@ f
|
||||||
TTaa
|
TTaa
|
||||||
TTaa
|
TTaa
|
||||||
TTaa
|
TTaa
|
||||||
TTaa'''
|
TTaa
|
||||||
|
true
|
||||||
|
true
|
||||||
|
nil'''
|
||||||
|
|
||||||
output: '''test'''
|
output: '''test'''
|
||||||
"""
|
"""
|
||||||
|
|
@ -62,3 +65,16 @@ macro m(s:static[Td]) : stmt =
|
||||||
const s=("TT", 3)
|
const s=("TT", 3)
|
||||||
m(s)
|
m(s)
|
||||||
m(s)
|
m(s)
|
||||||
|
|
||||||
|
# bug #933
|
||||||
|
|
||||||
|
proc nilcheck(): PNimrodNode {.compileTime.} =
|
||||||
|
echo(result == nil) # true
|
||||||
|
echo(result.isNil) # true
|
||||||
|
echo(repr(result)) # nil
|
||||||
|
|
||||||
|
macro testnilcheck(): stmt =
|
||||||
|
result = newNimNode(nnkStmtList)
|
||||||
|
discard nilcheck()
|
||||||
|
|
||||||
|
testnilcheck()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue