let kernel_functions_separation_hyps () =
debug "[kf separation hyps]";
Globals.Functions.iter
(fun kf ->
debug "[kf separation hyps] %s" (Kernel_function.get_name kf);
let formals = Kernel_function.get_formals kf in
let loc = Kernel_function.get_location kf in
match collect_refparams kf loc [] [] [] formals with
| Some hyp ->
debug "[kf separation hyps] case hyp:%a"
Cil.d_identified_predicate hyp;
Kernel_function.set_spec
kf (fun fspec ->
add_requires hyp fspec.Cil_types.spec_behavior;
fspec );
| None ->
debug "[kf separation hyps] case None";
())