diff --git a/iterator/iterator.ml b/iterator/iterator.ml index 35e96f3..a2f11ae 100644 --- a/iterator/iterator.ml +++ b/iterator/iterator.ml @@ -40,8 +40,11 @@ module Iterator (D : DOMAIN) = struct let l = List.filter (fun x -> Node.equal x.arc_src n) cfg.cfg_arcs in begin List.iter (fun arc -> let s = do_inst curr_abst arc in if D.subset s (node_abst arc.arc_dst) then () - else (Format.printf "@[Got node %i state %a@]@ " arc.arc_dst.node_id D.print s; - update_node arc.arc_dst s; func_dirty := NodeSet.add arc.arc_dst !func_dirty)) l; + else (Format.printf "@[[%i -> %i] Got node %i state %a join %a " n.node_id arc.arc_dst.node_id arc.arc_dst.node_id + D.print (node_abst arc.arc_dst) D.print s; + update_node arc.arc_dst s; + Format.printf "= %a@]@ " D.print (node_abst arc.arc_dst); + func_dirty := NodeSet.add arc.arc_dst !func_dirty)) l; if NodeSet.is_empty !func_dirty then () else iterate (NodeSet.choose !func_dirty) end end in