module Make_LOffset:functor (V:siginclude Offsetmap_lattice_with_isotropyinclude Lattice_type.With_Top_Optend) ->functor (Offsetmap:module type of Offsetmap_sigwith type v = V.t and type widen_hint = V.numerical_widen_hint) ->functor (Default_offsetmap:sigval name :stringUsed to create different datatypes each time the functor is applied
val default_offsetmap :Base.t -> Offsetmap.t Lattice_bounds.or_bottomValue returned when a map is queried, and the base is not present.
`Bottomindicates that the base is never bound in such a map.val default_contents :V.t Lmap.default_contentsThis function is used to optimize functions that add keys in a map, in particular when maintaining canonicity w.r.t. default contents. It describes the contents
cof the offsetmap resulting fromdefault_offsetmap b. The possible values are:
Bottommeans thatcisV.bottomeverywhere, and furthermore thatV.bottomhas an empty concretization. We deduce from this fact that unmapped keys do not contribute to a join, and thatjoin c vis nevercas soon asvis not itselfv.Topmeans thatcisV.topeverywhere. Thus unmapped keys have a default value more general than the one in a map where the key is bound.`Constant vmeans thatcis an offsetmap with a single interval containingveverywhere.vmust be isotropic (in the sense ofV.is_isotropic).`Othermeans thatdefault_offsetmapreturns something arbitrary.This function is only used on keys that change values. Thus it is safe to have
default_offsetmapreturn something that do not matchdefault_contentson constant keys.end) ->module type of Lmap_sigwith type v = V.t and type widen_hint_base = V.numerical_widen_hint and type offsetmap = Offsetmap.t
| Parameters: |
|