let compute_and_return kf =
let call_site_loc = CurrentLoc.get () in
From_parameters.feedback
"Computing for function %a%s"
Kernel_function.pretty_name kf
(let s = ref "" in
Stack.iter
(fun kf ->
s := !s^" <-"^(Pretty_utils.sfprintf "%a" Kernel_function.pretty_name kf))
call_stack;
!s);
let result = match kf.fundec with
| Definition _ ->
compute_using_cfg kf
| Declaration _ ->
compute_using_prototype kf
in
Recording_To_Do.record_kf kf result;
From_parameters.feedback "Done for function %a" Kernel_function.pretty_name kf;
CurrentLoc.set call_site_loc;
result