module SlicingMacros: sig
.. end
Slicing module public macros that should be used to avoid using the type
concrete definition from other modules.
Debug and utils
val cbug : bool -> string -> unit
val bug : string -> 'a
val sprintf : ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
Options
val str_level_option : T.t_level_option -> string
val translate_num_to_slicing_level : int -> T.t_level_option
val get_default_level_option : bool -> T.t_level_option
val get_str_default_level_option : bool -> string
Getting fct_info
and others
val get_proj_appli : T.t_project -> Project.t
getting svar
val fi_svar : T.t_fct_info -> Cil_types.varinfo
val ff_svar : T.t_fct_slice -> Cil_types.varinfo
getting fct_info
val get_kf_fi : T.t_project -> Kernel_function.t -> T.t_fct_info
Get the fct_info if it exists or build a new fct_info.
val fold_fi : ('a -> T.t_fct_info -> 'a) ->
'a -> T.t_project -> 'a
val ff_fi : T.t_fct_slice -> T.t_fct_info
val f_fi : T.t_fct_id -> T.t_fct_info
val get_ff_id : T.t_fct_slice -> int
getting names
val fi_name : T.t_fct_info -> string
val ff_name : T.t_fct_slice -> string
get the name of the function corresponding to that slice.
val f_name : T.t_fct_id -> string
val ff_src_name : T.t_fct_slice -> string
val pdg_name : PdgTypes.Pdg.t -> string
getting kernel_function
val get_fi_kf : T.t_fct_info -> Db_types.kernel_function
val get_ff_kf : T.t_fct_slice -> Db_types.kernel_function
val get_pdg_kf : PdgTypes.Pdg.t -> Kernel_function.t
getting PDG
val get_fi_pdg : T.t_fct_info -> Db.Pdg.t
val get_ff_pdg : T.t_fct_slice -> Db.Pdg.t
getting the slicing level
val fi_slicing_level : T.t_fct_info -> T.t_level_option
val ff_slicing_level : T.t_fct_slice -> T.t_level_option
val change_fi_slicing_level : T.t_fct_info -> T.t_level_option -> unit
val change_slicing_level : T.t_project -> Kernel_function.t -> int -> unit
Raises SlicingTypes.WrongSlicingLevel
if n
is not valid.
functions and slices
val fi_slices : T.t_fct_info -> T.t_fct_slice list
Comparisons
val equal_fi : T.t_fct_info -> T.t_fct_info -> bool
val equal_ff : T.t_fct_slice -> T.t_fct_slice -> bool
val equal_f : T.t_fct_id -> T.t_fct_id -> bool
Calls
val same_call : Cil_types.stmt -> Cil_types.stmt -> bool
val same_ff_call : T.t_fct_slice * Cil_types.stmt ->
T.t_fct_slice * Cil_types.stmt -> bool
val is_call_stmt : Cil_types.stmt -> bool
val get_called_kf : Cil_types.stmt -> Db_types.kernel_function
val is_variadic : Kernel_function.t -> bool
val get_fi_call : T.t_project ->
Cil_types.stmt -> T.t_fct_info option
get the fct_info
of the called function, if we know it
val is_src_fun_called : T.t_project -> Kernel_function.t -> bool
val is_src_fun_visible : T.t_project -> Kernel_function.t -> bool
val get_calls_to_ff : T.t_fct_slice -> T.t_called_by
val get_calls_to_src : T.t_fct_info -> T.t_called_by
val fi_has_persistent_selection : T.t_fct_info -> bool
val has_persistent_selection : T.t_project -> Kernel_function.t -> bool