let get_call_annots config v s fct =
let l_post = Cil2cfg.get_post_logic_label config.cfg v in
match WpStrategy.get_called_kf fct with
| Some kf ->
let spec = Kernel_function.get_spec kf in
let before_annots =
if rte_precond_status config.kf then WpStrategy.empty_acc
else add_called_pre config kf s spec
in
let post_annots = add_called_post kf Normal in
let post_annots =
WpStrategy.add_call_assigns_hyp post_annots config.kf s
l_post (Some spec)
in
let exits_annots = add_called_post kf Exits in
before_annots, (post_annots, exits_annots)
| None ->
Wp_parameters.warning
"call through function pointer not implemented yet: ignore called function properties.";
let assigns_annots =
WpStrategy.add_call_assigns_hyp WpStrategy.empty_acc config.kf s
l_post None
in WpStrategy.empty_acc, (assigns_annots, assigns_annots)