From 38b3590e40b7267195c65168e6ff064775de4339 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Sun, 20 Oct 2019 22:37:31 +0200 Subject: fixes #12310 [backport] (#12470) --- compiler/vmgen.nim | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'compiler/vmgen.nim') diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index 09e02f818..b528ff7be 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -948,9 +948,13 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest; m: TMagic) = c.genAddSubInt(n, dest, opcAddInt) of mInc, mDec: unused(c, n, dest) - let opc = if m == mInc: opcAddInt else: opcSubInt + let isUnsigned = n.sons[1].typ.skipTypes(abstractVarRange).kind in {tyUInt..tyUInt64} + let opc = if not isUnsigned: + if m == mInc: opcAddInt else: opcSubInt + else: + if m == mInc: opcAddu else: opcSubu let d = c.genx(n.sons[1]) - if n.sons[2].isInt8Lit: + if n.sons[2].isInt8Lit and not isUnsigned: c.gABI(n, succ(opc), d, d, n.sons[2].intVal) else: let tmp = c.genx(n.sons[2]) -- cgit 1.4.1-2-gfad0