Frama-C API - Mark
Access to slicing results.
type t = SlicingTypes.sl_markAbstract data type for mark value.
val dyn_t : t Frama_c_kernel.Type.tFor dynamic type checking.
No needs of 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).
A 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. That mark is related to transparent selection.
val is_ctrl : t -> boolThe element is used to control the program point of a selected data.
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_addr : t -> boolThe element is used to compute the address of a selected data.
val get_from_src_func : Frama_c_kernel.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)
Debug
val pretty : Stdlib.Format.formatter -> t -> unit