let local_after_states superposed =
lazy (
let superposed = Lazy.force superposed in
Stmt.Hashtbl.iter
(fun stmt state ->
List.iter
(fun pred ->
if not (store_state_after_during_dataflow pred stmt) then
try
let cur = Stmt.Hashtbl.find states_after pred in
Stmt.Hashtbl.replace states_after pred
(Cvalue.Model.join state cur)
with Not_found -> Stmt.Hashtbl.add states_after pred state
) stmt.preds;
) superposed;
(try
let ret = Kernel_function.find_return (current_kf ()) in
let s = Stmt.Hashtbl.find superposed ret in
Stmt.Hashtbl.add states_after ret s
with Kernel_function.No_Statement | Not_found -> ()
);
states_after
)