let zone_info_nodes pdg data_info =
  let add_info_nodes pdg (nodes_acc, undef_acc) info =
    let stmt = info.Db.Properties.Interp.To_zone.ki in
    let before = info.Db.Properties.Interp.To_zone.before in
    let zone = info.Db.Properties.Interp.To_zone.zone in
      Pdg_parameters.debug ~level:2 "[pdg:annotation] need %a %s stmt %d@."
        Locations.Zone.pretty zone
        (if before then "before" else "after") stmt.sid;
      let nodes, undef_loc =
        Sets.find_location_nodes_at_stmt pdg stmt ~before zone
      in
      let undef_acc = match undef_acc, undef_loc with
        | None, _ -> undef_loc
        | _, None -> undef_acc
        | Some z1, Some z2 -> Some (Locations.Zone.join z1 z2)
      in
        (nodes @ nodes_acc, undef_acc)
  in match data_info with
    | None -> None (* To_zone.xxx didn't manage to compute the zone *)
    | Some data_info ->
        let data_dpds = ([], Nonein
        let data_dpds =
          List.fold_left (add_info_nodes pdg) data_dpds data_info
        in Some data_dpds