module type S =sig..end
Signature of a simple memory abstraction for scalar variables.
type t
type value
val add : Precise_locs.precise_location ->
Cil_types.typ ->
value -> t -> tadd loc typ v state binds loc to v in state. If typ does
not match the effective type of the location pointed, V.top is
bound instead. This function automatically handles the case where
loc abstracts multiple locations, or when some locations are not
tracked by the domain.
val find : Precise_locs.precise_location ->
Cil_types.typ -> t -> valuefind loc typ state returns the join of the abstract values stored
in the locations abstracted to by loc in state, assuming the
result has type typ. When loc includes untracked locations, or when
typ does not match the type of the locations in loc, the
result is approximated.
val remove : Precise_locs.precise_location -> t -> tremove loc state drops all information on the locations pointed to
by loc from state.
val remove_variables : Cil_types.varinfo list -> t -> tremove_variables list state drops all information about the variables
in list from state.
val fold : (Base.t -> value -> 'a -> 'a) ->
t -> 'a -> 'aFold on base value pairs.