let build_configs assigns kf behaviors ki property =
debug "[get_strategies] for behaviors names: %a@."
(Wp_error.pp_string_list ~sep:" " ~empty:"<none>")
(match behaviors with [] -> ["<all>"] | _ :: _ as l -> l) ;
let _ = match ki with
| None -> ()
| Some Kglobal ->
debug
"[get_strategies] select in function properies@."
| Some (Kstmt s) ->
debug
"[get_strategies] select stmt %d properties@." s.sid
in
let cfg = get_cfg kf in
let property = match property with
| AllProps -> if Cil2cfg.cfg_spec_only cfg then OnlyPreconds else AllProps
| _ -> property
in
let def_annot_bhv, bhvs = find_behaviors kf cfg ki behaviors in
if bhvs = [] then
Wp_parameters.warning "[get_strategies] no behaviors found"
else
debug "[get_strategies] %d behaviors"
(List.length bhvs);
let mk_bhv_config bhv = { kf = kf;
cfg = cfg;
cur_bhv = bhv;
asked_prop = property;
asked_bhvs = bhvs;
assigns_filter = assigns;
def_annots_info = def_annot_bhv }
in List.map mk_bhv_config bhvs