let doEdge s succ d =
    match REACH.blocks_closed_by_edge s succ with
        [] -> d
      | closed_blocks ->
          let kinstr = Kstmt s in
          CilE.start_stmt kinstr;
          let d = copy d in
          d.value :=
            State_set.fold
              (fun state set ->
                 let state =
                   Relations_type.Model.uninitialize_locals closed_blocks state
                 in
                 State_set.add
                   (block_top_addresses_of_locals closed_blocks state) set)
              !(d.value) State_set.empty;
          CilE.end_stmt ();
          d