IntDomain.ArithIkind
type t
Arithmetic operators
val neg : GoblintCil.Cil.ikind -> t -> t
Negating an integer value: -x
-x
val add : GoblintCil.Cil.ikind -> t -> t -> t
Addition: x + y
x + y
val sub : GoblintCil.Cil.ikind -> t -> t -> t
Subtraction: x - y
x - y
val mul : GoblintCil.Cil.ikind -> t -> t -> t
Multiplication: x * y
x * y
val div : GoblintCil.Cil.ikind -> t -> t -> t
Division: x / y
x / y
val rem : GoblintCil.Cil.ikind -> t -> t -> t
Integer remainder: x % y
x % y
Comparison operators
val lt : GoblintCil.Cil.ikind -> t -> t -> t
Less than: x < y
x < y
val gt : GoblintCil.Cil.ikind -> t -> t -> t
Greater than: x > y
x > y
val le : GoblintCil.Cil.ikind -> t -> t -> t
Less than or equal: x <= y
x <= y
val ge : GoblintCil.Cil.ikind -> t -> t -> t
Greater than or equal: x >= y
x >= y
val eq : GoblintCil.Cil.ikind -> t -> t -> t
Equal to: x == y
x == y
val ne : GoblintCil.Cil.ikind -> t -> t -> t
Not equal to: x != y
x != y
Bit operators
val lognot : GoblintCil.Cil.ikind -> t -> t
Bitwise not (one's complement): ~x
~x
val logand : GoblintCil.Cil.ikind -> t -> t -> t
Bitwise and: x & y
x & y
val logor : GoblintCil.Cil.ikind -> t -> t -> t
Bitwise or: x | y
x | y
val logxor : GoblintCil.Cil.ikind -> t -> t -> t
Bitwise exclusive or: x ^ y
x ^ y
val shift_left : GoblintCil.Cil.ikind -> t -> t -> t
Shifting bits left: x << y
x << y
val shift_right : GoblintCil.Cil.ikind -> t -> t -> t
Shifting bits right: x >> y
x >> y
Logical operators
val c_lognot : GoblintCil.Cil.ikind -> t -> t
Logical not: !x
!x
val c_logand : GoblintCil.Cil.ikind -> t -> t -> t
Logical and: x && y
x && y
val c_logor : GoblintCil.Cil.ikind -> t -> t -> t
Logical or: x || y
x || y