module Mark:sig..end
Access to slicing results.
type t
Abstract data type for mark value.
val dyn_t : t Type.tFor dynamic type checking and journalization.
val make : data:bool -> addr:bool -> ctrl:bool -> tTo construct a mark such as
(is_ctrl result, is_data result, isaddr result) =,
(~ctrl, ~data, ~addr)(is_bottom result) = false and
(is_spare result) = not (~ctrl || ~data || ~addr).
val compare : t -> t -> intA total ordering function similar to the generic structural
comparison function compare.
Can be used to build a map from t marks to, for example, colors for
the GUI.
val is_bottom : t -> booltrue iff the mark is empty: it is the only case where the
associated element is invisible.
val is_spare : t -> boolSmallest visible mark. Usually used to mark element that need to be visible for compilation purpose, not really for the selected computations.
val is_data : t -> boolThe element is used to compute selected data.
Notice that a mark can be is_data and/or is_ctrl and/or is_addr
at the same time.
val is_ctrl : t -> boolThe element is used to control the program point of a selected data.
val is_addr : t -> boolThe element is used to compute the address of a selected data.
val get_from_src_func : Cil_types.kernel_function -> tThe mark m related to all statements of a source function kf.
Property : is_bottom (get_from_func proj kf) = not (Project.is_called proj kf)
val pretty : Stdlib.Format.formatter -> t -> unitMay be used for debugging... Pretty mark information.