let fct_info project kf =
let fi = M.get_kf_fi project kf in
let slices = M.fi_slices fi in
let src_visible = is_src_fun_visible project kf in
SlicingParameters.debug ~level:1 "[SlicingTransform.Visibility.fct_info] processing %a (%d slices/src %svisible)"
Kernel_function.pretty kf (List.length slices)
(if src_visible then "" else "not ");
let need_addr = (Kernel_function.get_vi kf).vaddrof in
let src_name_used = src_visible || need_addr in
let info_list = List.map (fun ff -> Iff (ff, src_name_used)) slices in
if src_visible then Isrc :: info_list
else if need_addr then Iproto :: info_list
else info_list