CodeQL library for C#
codeql/csharp-all 0.4.4 (changelog, source)

Predicate exprModulus

Holds if e is equal to b + val modulo mod.

There are two cases for the modulus:

  • mod = 0: The equality e = 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)