let get_weakest_precondition cfg ((kf, _g, strategy, res, wenv) as env) =
debug "[wp-cfg] start Pass1";
Cil2cfg.iter_edges (fun e -> ignore (get_wp_edge env e)) cfg ;
debug "[wp-cfg] end of Pass1";
R.change_mode_if_needed res;
let e_start = Cil2cfg.start_edge cfg in
let obj = get_wp_edge env e_start in
let obj = process_global_init wenv kf obj in
let obj = match WpStrategy.strategy_kind strategy with
| WpStrategy.SKannots -> obj
| WpStrategy.SKfroms info ->
let pre = info.WpStrategy.get_pre () in
let pre = WpStrategy.get_hyp_only pre in
W.build_prop_of_from wenv pre obj
in
debug "before close: %a@." W.pretty obj;
W.close wenv obj