Functor Lmap_whole.Make_LOffset.Make


module Make: 
functor (Default_offsetmap : sig
val default_offsetmap : Base.t -> LOffset.t
end) -> sig .. end
Parameters:
Default_offsetmap : sig val default_offsetmap : Base.t -> LOffset.t end

include Datatype.S

the datype of a map
type widen_hint = bool * Base.Set.t * (Base.t -> Lmap_whole.Make_LOffset.widen_hint_offsetmap) 
type instanciation = Locations.Location_Bytes.t Base.Map.t 
val inject : Base.t -> LOffset.t -> t
val pretty_without_null : Format.formatter -> t -> unit
val pretty_filter : Format.formatter -> t -> Locations.Zone.t -> unit
val add_binding : with_alarms:CilE.warn_mode ->
exact:bool -> t -> Locations.location -> Lmap_whole.Make_LOffset.y -> t
val find : with_alarms:CilE.warn_mode ->
t -> Locations.location -> Lmap_whole.Make_LOffset.y
val concerned_bindings : t -> Locations.location -> Lmap_whole.Make_LOffset.y list
val join : t -> t -> t
val is_included : t -> t -> bool
val is_included_actual_generic : Locations.Zone.t -> t -> t -> instanciation
val empty : t
Every location is associated to VALUE.top in empty.
val is_empty : t -> bool
val bottom : t
Every location is associated to VALUE.bottom in bottom. This state can be reached only in dead code.
val is_reachable : t -> bool
val widen : widen_hint -> t -> t -> bool * t
val filter_base : (Base.t -> bool) -> t -> t
val find_base : Base.t -> t -> LOffset.t
Raises Not_found if the varid is not present in the map
val copy_paste : Locations.location -> Locations.location -> t -> t
copy_paste src dst state returns a modified version of state in which everything present in src has been copied onto dst. src and dst must have the same size. The write operation is exact iff dst is exact. May raise Cannot_copy.
val paste_offsetmap : LOffset.t ->
Locations.Location_Bits.t ->
Abstract_interp.Int.t -> Abstract_interp.Int.t -> t -> t
Raises Cannot_copy when ...
val copy_offsetmap : Locations.location -> t -> LOffset.t option
May return None as a bottom LOffset.t
Raises Cannot_copy when ...
val compute_actual_final_from_generic : t -> t -> Locations.Zone.t -> instanciation -> t
val is_included_by_location_enum : t -> t -> Locations.Zone.t -> bool
val fold : size:Abstract_interp.Int.t ->
(Locations.location -> Lmap_whole.Make_LOffset.y -> 'a -> 'a) ->
t -> 'a -> 'a
Raises Invalid_argument "Lmap.fold" if one location is not aligned or of size different of size.
val fold_single_bindings : size:Abstract_interp.Int.t ->
(Locations.location -> Lmap_whole.Make_LOffset.y -> 'a -> 'a) ->
t -> 'a -> 'a
Raises Invalid_argument "Lmap.fold" if one location is not aligned or of size different of size.
val fold_base : (Base.t -> 'a -> 'a) -> t -> 'a -> 'a
fold_base f m calls f on all bases bound to non top values in m
val find_offsetmap_for_location : Locations.Location_Bits.t -> t -> LOffset.t
val add_whole : Locations.location -> Lmap_whole.Make_LOffset.y -> t -> t
val remove_whole : Locations.location -> t -> t
val reciprocal_image : Base.t -> t -> Locations.Zone.t * Locations.Location_Bits.t
reciprocal_image m b is the set of bits in the map m that may lead to Top(b) and the location in m where one may read an address b+_
val create_initial : base:Base.t ->
v:Lmap_whole.Make_LOffset.y -> modu:Abstract_interp.Int.t -> state:t -> t
val cached_fold : f:(Base.t -> LOffset.t -> 'a) ->
cache:string * int ->
temporary:bool -> joiner:('a -> 'a -> 'a) -> empty:'a -> t -> 'a
val cached_map : f:(Base.t -> LOffset.t -> LOffset.t) ->
cache:string * int -> temporary:bool -> t -> t