let iter_edges_slices f proj =
let do_edge dest (ff_caller, call) =
f ((Slice ff_caller, dest), Some call) in
let do_f _f_var fi =
List.iter (do_edge (Src fi)) fi.T.f_called_by;
let do_ff ff = List.iter (do_edge (Slice ff)) ff.T.ff_called_by in
List.iter do_ff (M.fi_slices fi)
in
Cil_datatype.Varinfo.Hashtbl.iter do_f proj.T.functions