module Offsetmap_lattice_with_isotropy: sig
.. end
include Bounded_Join_Semi_Lattice
include With_Top
include With_Narrow
include With_Widening
include With_Cardinal_One
val pretty_typ : Cil_types.typ option -> t Pretty_utils.formatter
val is_isotropic : t -> bool
Are the bits independent?
: topify:Origin.kind ->
start:Integer.t -> stop:Integer.t -> size:Integer.t -> t -> bool * t
Extract the bits between start
and stop
in the value of type t
,
assuming this value has size
bits. Return the corresponding value, and
a boolean indicating that an imprecision occurred during the operation.
In the latter case, the origin of the imprecision is flagged as having kind
topify
val little_endian_merge_bits : topify:Origin.kind ->
conflate_bottom:bool -> value:t -> offset:Integer.t -> t -> t
val big_endian_merge_bits : topify:Origin.kind ->
conflate_bottom:bool ->
total_length:int -> length:Integer.t -> value:t -> offset:Integer.t -> t -> t
val merge_neutral_element : t
val topify_with_origin : Origin.t -> t -> t
val anisotropic_cast : size:Integer.t -> t -> t
Convert the given value so that it fits in size
bits.