let get_call_pre_strategies stmt =
debug
"[get_call_pre_strategies] on statement %a@." Stmt.pretty_sid stmt;
match stmt.skind with
| Instr(Call(_,f,_,_)) ->
let strategies = match WpStrategy.get_called_kf f with
| None ->
Wp_parameters.warning
"call through function pointer not implemented yet: cannot check pre-conditions for statement %a"
Stmt.pretty_sid stmt;
[]
| Some _kf_called ->
let kf_caller = Kernel_function.find_englobing_kf stmt in
let asked = CallPre (stmt, None) in
get_strategies NoAssigns kf_caller [] None asked
in strategies
| _ -> Wp_parameters.warning
"[get_call_pre_strategies] this is not a call statement"; []