module F_Proj:
To also use interprocedural propagation, the user can instantiate this
functor. This is, of course, not mandatory because one can want to use a more
complex propagation (like slicing for instance, that has more than one
version for a source function).
type
t_mark = C.M.t
type
t_call_info = C.M.t_call_info
type
t_fct = F.t_fi
type
t = t_fct_info Cil_datatype.Varinfo.Hashtbl.t
val empty : t_fct_info Cil_datatype.Varinfo.Hashtbl.t
val find_marks : F.t Cil_datatype.Varinfo.Hashtbl.t ->
Cil_datatype.Varinfo.Hashtbl.key -> F.t_fi option
val mark_and_propagate : F.t Cil_datatype.Varinfo.Hashtbl.t ->
Db.Pdg.t -> F.t_mark PdgMarks.t_select -> unit
Add the marks to the pdg nodes and also apply all the produced requests
to do the interprocedural propagation.