Predicate relOpWithSwap
Holds if rel
is a relational operation (<
, >
, <=
or >=
)
with fully-converted children a
and b
, described by dir
and strict
.
This allows for the relation to be either as written, or with its
arguments reversed; for example, if rel
is x < 5
then both
relOpWithSwap(rel, x, 5, Lesser(), Strict())
and
relOpWithSwap(rel, 5, x, Greater(), Strict())
hold.
Import path
import semmle.code.cpp.rangeanalysis.RangeAnalysisUtils
predicate relOpWithSwap(RelationalOperation rel, Expr a, Expr b, RelationDirection dir, RelationStrictness strict)