Module SlicingMacros

module SlicingMacros: sig .. end

This .mli exists mainly to facilitate 'make -j'. A lot of the get_ functions below should be inlined, as there is no good reason to treat those types as semi-private

Slicing module public macros that should be used to avoid using the type concrete definition from other modules.


val str_level_option : SlicingInternals.level_option -> string
val get_default_level_option : bool -> SlicingInternals.level_option
val fi_svar : SlicingInternals.fct_info -> Cil_types.varinfo
val ff_svar : SlicingInternals.fct_slice -> Cil_types.varinfo
val get_kf_fi : Kernel_function.t -> SlicingInternals.fct_info

Get the fct_info if it exists or build a new fct_info.

val fold_fi : ('a -> SlicingInternals.fct_info -> 'a) -> 'a -> 'a
val get_ff_id : SlicingInternals.fct_slice -> int
getting num id
val fi_name : SlicingInternals.fct_info -> string
val ff_name : SlicingInternals.fct_slice -> string

get the name of the function corresponding to that slice.

val f_name : SlicingInternals.fct_id -> string
val ff_src_name : SlicingInternals.fct_slice -> string
val get_fi_kf : SlicingInternals.fct_info -> Cil_types.kernel_function
val get_ff_kf : SlicingInternals.fct_slice -> Cil_types.kernel_function
val get_pdg_kf : PdgTypes.Pdg.t -> Kernel_function.t
val get_fi_pdg : SlicingInternals.fct_info -> Db.Pdg.t
val get_ff_pdg : SlicingInternals.fct_slice -> Db.Pdg.t
val ff_slicing_level : SlicingInternals.fct_slice -> SlicingInternals.level_option
val change_fi_slicing_level : SlicingInternals.fct_info -> SlicingInternals.level_option -> unit
val change_slicing_level : Kernel_function.t -> int -> unit
val fi_slices : SlicingInternals.fct_info -> SlicingInternals.fct_slice list
val equal_fi : SlicingInternals.fct_info -> SlicingInternals.fct_info -> bool
val equal_ff : SlicingInternals.fct_slice -> SlicingInternals.fct_slice -> bool
val same_ff_call : SlicingInternals.fct_slice * Cil_types.stmt ->
SlicingInternals.fct_slice * Cil_types.stmt -> bool
val is_call_stmt : Cil_types.stmt -> bool
val get_fi_call : Cil_types.stmt -> SlicingInternals.fct_info option

get the fct_info of the called function, if we know it

val is_src_fun_called : Kernel_function.t -> bool
val is_src_fun_visible : Kernel_function.t -> bool
val fi_has_persistent_selection : SlicingInternals.fct_info -> bool
val has_persistent_selection : Kernel_function.t -> bool