Fix $8000_0000 % -1 to warn with -Wdiv like $8000_0000 / -1 does (#2012)

This commit is contained in:
Rangi
2026-07-06 15:08:44 -04:00
committed by GitHub
parent be3fc61859
commit 46a6966b70
6 changed files with 25 additions and 12 deletions
+4 -1
View File
@@ -143,8 +143,11 @@ static int32_t computeRPNExpr(Patch const &patch, std::vector<Symbol> const &fil
firstErrorAt(patch, "Modulo by 0");
popRPN(patch);
value = 0;
} else if (int32_t lval = popRPN(patch); lval == INT32_MIN && value == -1) {
diagnosticAt(patch, WARNING_DIV, "Modulo of %" PRId32 " by -1 yields 0", INT32_MIN);
value = 0;
} else {
value = op_modulo(popRPN(patch), value);
value = op_modulo(lval, value);
}
break;
case RPN_NEG: