Fix modulo by zero

Yet another case caught by scan-build:

src/link/patch.c:188:21: warning: Division by zero
                        value = popRPN() % value;
                                ~~~~~~~~~^~~~~~~

Just copy over the code from the division case, with a few modifications.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
This commit is contained in:
JL2210
2020-04-08 18:38:18 -04:00
parent 5ea8490e2b
commit 5dd941b311

View File

@@ -185,7 +185,13 @@ static int32_t computeRPNExpr(struct Patch const *patch,
break; break;
case RPN_MOD: case RPN_MOD:
value = popRPN(); value = popRPN();
value = popRPN() % value; if (value == 0) {
error("%s: Modulo by 0", patch->fileName);
popRPN();
value = 0;
} else {
value = popRPN() % value;
}
break; break;
case RPN_UNSUB: case RPN_UNSUB:
value = -popRPN(); value = -popRPN();