let apply_missing_inputs proj ff call missing_inputs =
  let _input_marks, more_inputs = missing_inputs in
  SlicingParameters.debug ~level:1 "[Fct_Slice.apply_missing_inputs] (%s)"
          (if more_inputs then "more" else "marks");
  (*
  let rec visible_top in_marks = match in_marks with
    | [] -> false
    | (sel, m)::tl ->
        assert (not (Marks.is_bottom_mark m));
        match sel with
          | PdgMarks.SelNode (n, _)
              when (!Db.Pdg.node_key n = PdgIndex.Key.top_input) -> true
          | _ -> visible_top tl
  in let is_top_visible = visible_top input_marks in
  *)

  let level = M.ff_slicing_level ff in
    if more_inputs && level = T.MaxNbSlice then
      (* if adding marks doesn't change the visibility of the inputs,
      * let's keep the same called function. If it adds visible inputs,
      * let's choose another one *)

      begin
        FctMarks.change_call proj ff call None;
        apply_choose_call proj ff call
      end
    else
        apply_modif_call_inputs ff call missing_inputs