let add_nodes_and_undef_to_select 
      glob (ctrl_nodes, decl_nodes, data_info) to_select =
  match data_info with
    | None -> to_select (* don't select anything (computation failed) *)
    | Some (data_nodes, undef) ->
        let to_select = 
          List.fold_left (fun s n -> add_node_to_select glob s None n) 
            to_select ctrl_nodes
        in
        let to_select = 
          List.fold_left (fun s n -> add_node_to_select glob s None n) 
            to_select decl_nodes
        in
        let to_select = 
          List.fold_left (fun s (n,z_opt) -> add_node_to_select glob s z_opt n)
            to_select data_nodes
        in
        let m = (BoolMark.mk glob) in
        let to_select = PdgMarks.add_undef_in_to_select to_select undef m in 
          to_select