Predicate exprModulus
Holds if e
is equal to b + val
modulo mod
.
There are two cases for the modulus:
mod = 0
: The equalitye = b + val
is an ordinary equality.mod > 1
:val
lies within the range[0 .. mod-1]
.
Import path
import semmle.code.csharp.dataflow.ModulusAnalysis
predicate exprModulus(Expr e, Bound b, int val, int mod)