let get_x_direct_edges ~co dpd_type_opt pdg node =
let pdg = get_pdg_body pdg in
let is_dpd_ok e = match dpd_type_opt with None -> true
| Some k -> DpdZone.is_dpd k (G.E.label e)
in
let filter edge nodes =
if is_dpd_ok edge then edge :: nodes else nodes
in
let fold = if co then G.fold_pred_e else G.fold_succ_e in
let nodes = fold filter pdg.graph node [] in
nodes