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_name 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 (* TODO for #344 *)
      else info_list