let change_mode_if_needed res =
if LabObligs.is_empty res.memo then ()
else
begin
debug "change to Pass2 (clear wp table)@.";
begin try
let e_start = Cil2cfg.start_edge res.cfg in
let start_goal = find res e_start in
add_memo res e_start start_goal
with Not_found -> ()
end;
HE.clear res.tbl;
(* move memo obligs of Pass1 to obligs for Pass2 *)
res.obligs <- res.memo;
res.memo <- LabObligs.empty;
res.mode <- Pass2
end