module Origin: sig
.. end
The datastructures of this module can be used to track the origin
of a major imprecision in the values of an abstract domain.
This module is generic, although currently used only by the plugin Value.
Within Value, values that have an imprecision origin are "garbled mix",
ie. a numeric value that contains bits extracted from at least one
pointer, and that are not the result of a translation
module LocationSetLattice: sig
.. end
Sets of source locations
type
origin =
| |
Misalign_read of LocationSetLattice.t |
| |
Leaf of LocationSetLattice.t |
| |
Merge of LocationSetLattice.t |
| |
Arith of LocationSetLattice.t |
| |
Well |
| |
Unknown |
List of possible origins. Most of them also include the set of
source locations where the operation took place.
include Datatype.S
type
kind =
| |
K_Misalign_read |
| |
K_Leaf |
| |
K_Merge |
| |
K_Arith |
val current : kind -> origin
This is automatically extracted from Cil.CurrentLoc
val pretty_as_reason : Format.formatter -> t -> unit
Pretty-print because of <origin>
if the origin is not Unknown
, or
nothing otherwise
val top : t
val is_top : t -> bool
val bottom : t
val join : t -> t -> t
val meet : t -> t -> t
val narrow : t -> t -> t
val is_included : t -> t -> bool