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

type t 
the type of a map
type widen_hint = bool * BaseUtils.BaseSet.t *
(Base.t -> Lmap_whole.Make_LOffset.widen_hint_offsetmap)
type instanciation = Locations.Location_Bytes.t BaseUtils.BaseMap.t 
module Datatype: Project.Datatype.S  with type t = t
val inject : Base.t -> LOffset.t -> t
val pretty : Format.formatter -> t -> unit
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 equal : 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
May raise Cannot_copy.
val copy_offsetmap : Locations.location -> t -> LOffset.t option
May return None as a bottom LOffset.t May raise Cannot_copy.
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.

"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
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
exception Error_Bottom
val cached_fold : f:(Base.t -> LOffset.t -> 'a) ->
cache:string * int ->
joiner:('a -> 'a -> 'a) -> empty:'a -> t -> 'a
val cached_map : f:(Base.t -> LOffset.t -> LOffset.t) ->
cache:string * int ->
t -> t