Module Locations.Location_Bits


module Location_Bits: sig .. end
Association between varids and offsets in bits.
Consult the Plugin Development Guide for additional details.

module M: sig .. end
module Top_Param: Lattice_Set  with type O.elt = Base.t

type t =
| Top of Top_Param.t * Origin.t
| Map of M.t
module Datatype: Project.Datatype.S  with type t = t
val top : t
val bottom : t
val find_or_bottom : Base.t -> M.t -> Ival.t
val add_or_bottom : Base.t ->
Ival.t -> M.t -> M.t
val inject : Base.t -> Ival.t -> t
val inject_ival : Ival.t -> t
val join : t ->
t -> t
Over-approximation of union.
val link : t ->
t -> t
Under_approximation of union.
val narrow : t ->
t -> t
Over-approximation of intersection.
val meet : t ->
t -> t
Under-approximation of intersection.
val diff : t ->
t -> t
Over-approximation of difference. arg2 needs to be exact or an under_approximation.
val diff_if_one : t ->
t -> t
Over-approximation of difference. arg2 can be an over-approximation.
exception Error_Bottom
exception Error_Top
val find_exclusive : Base.t -> t -> Ival.t
find_exclusive k m returns v if m contains only the binding k -> v.
Raises Not_exclusive otherwise.
exception Not_all_keys
val get_keys_exclusive : Ival.t -> t -> Base.t list
val pretty : Format.formatter -> t -> unit
val intersects : t -> t -> bool
intersects t1 t2 is true iff t1 and t2 have a nonempty intersection
val inject_top_origin : Origin.t ->
Top_Param.O.t -> t
inject_top_origin origin p creates a top with origin origin and additional information param
val topify_arith_origin : t -> t
type widen_hint 
val widen : widen_hint ->
t ->
t -> t
val equal : t -> t -> bool
val hash : t -> int
val is_included : t -> t -> bool
val find_lonely_binding : t -> Base.t * Ival.t
val find_lonely_key : t -> Base.t * Ival.t
val cardinal_zero_or_one : t -> bool
val cardinal_less_than : t -> int -> int
val location_shift : Ival.t -> t -> t
val filter_base : (Base.t -> bool) -> t -> t
val fold_i : (Base.t -> Ival.t -> 'a -> 'a) -> t -> 'a -> 'a
val fold_enum : split_non_enumerable:int ->
(t -> 'a -> 'a) ->
t -> 'a -> 'a
val is_in_set : set:Top_Param.O.t -> Base.t -> bool
val fold_bases : (Base.t -> 'a -> 'a) -> t -> 'a -> 'a
val get_bases : t -> Top_Param.t