package goblint
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=20d5b7332a9f6072ab9ba86c4a53b898eaf681286c56a8805c41850bbf3ddf41
    
    
  sha512=7c7685cfcd9aa866bc40e813df2bfcb3c79b3d40e615d8d6d0939c5798b9d70dd7f2ba87a741f5ba0ce891e9d254627207fb28057f1f2f6611e4e0d128fd6a71
    
    
  doc/goblint_cdomain_value/IntDomain/Flat/index.html
Module IntDomain.Flat
Creates a flat value domain, where all ordering is lost. Arithmetic * operations are lifted such that only lifted values can be evaluated * otherwise the top/bot is simply propagated with bot taking precedence over * top.
Parameters
module Base : IkindUnawareSSignature
include IntDomain_intf.B
  with type t = [ `Bot | `Lifted of Base.t | `Top ]
  with type int_t = Base.int_t
include Lattice.PO with type t = [ `Bot | `Lifted of Base.t | `Top ]
include Printable.S with type t = [ `Bot | `Lifted of Base.t | `Top ]
val hash : t -> intval show : t -> stringval pretty : unit -> t -> Printable.Pretty.docval printXml : 'a BatInnerIO.output -> t -> unitval to_yojson : t -> Yojson.Safe.tval tag : t -> intUnique ID, given by HConsed, for context identification in witness
widen x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
type int_t = Base.int_tAccessing values of the ADT
val bot_of : GoblintCil.Cil.ikind -> tval top_of : GoblintCil.Cil.ikind -> tReturn a single integer value if the value is a known constant, otherwise * don't return anything.
val to_bool : t -> bool optionGive a boolean interpretation of an abstract value if possible, otherwise * don't return anything.
Gives a list representation of the excluded values from included range of bits if possible.
Creates an exclusion set from a given list of integers.
val is_excl_list : t -> boolChecks if the element is an exclusion set.
Gives a list representation of the included values if possible.
Cast
Cast from original type torg to integer type Cil.ikind. Currently, torg is only present for actual casts. The function is also called to handle overflows/wrap around after operations. In these cases (where the type stays the same) torg is None.
include IntDomain_intf.Arith with type t := t
Comparison operators
Bitwise logical operators
Logical operators
val of_bool : bool -> tTransform a known boolean value to the default internal representation. It * should follow C: of_bool true = of_int 1 and of_bool false = of_int 0.
val arbitrary : unit -> t QCheck.arbitraryval invariant : GoblintCil.Cil.exp -> t -> Invariant.t