let select_func_return set ~spare kf =
  try
    let ki = Kernel_function.find_return kf
    in select_stmt set ~spare ki kf
  with Kernel_function.No_Definition ->
    let mark = !Db.Slicing.Mark.make
      ~data:(not spare) ~addr:(not spare) ~ctrl:(not spare)
    in
      select_entry_point_and_some_inputs_outputs set ~mark kf
        ~return:true ~outputs:Locations.Zone.bottom
        ~inputs:Locations.Zone.bottom