let process_loop_stmt pdg ctrl_dpds_infos loop =
let _entry, back_edges = Stmts_graph.loop_preds loop in
debug2 "[process_loop_stmt] for loop %d : back edges = {%a}@."
loop.sid (Pretty_utils.pp_list Stmt.pretty_sid) back_edges;
let controled_stmts =
CtrlDpds.get_loop_controled_stmts ctrl_dpds_infos loop
in
let real_loop = List.exists (Db.Value.is_reachable_stmt) back_edges in
if not real_loop then
debug "[process_loop_stmt] stmt %d is not a real loop@." loop.sid;
BuildPdg.process_jump pdg loop (real_loop, controled_stmts)