let get_exit_edges cfg src =
  Wp_parameters.debug ~level:3 "[cfg:get_exit_edges] of %a@." pp_node src;
  let do_node n acc =
    let add_exit e acc =
      let dst = edge_dst e in
      match node_type dst with
      | VcallExit _ ->
          Wp_parameters.debug ~level:3
            "[cfg:get_exit_edges] add %a@." pp_edge e;
          (succ_e cfg dst) @ acc
      | _ -> acc
    in fold_succ_e add_exit cfg n acc
  in
  let rec do_node_and_preds n acc =
    let acc = do_node n acc in
    if CFG.V.compare src n = 0 then acc
    else do_preds n acc
  and do_preds n acc =
    fold_pred do_node_and_preds cfg n acc
  in
  let edges = do_preds (node_after cfg src) [] in
    if edges = [] then
      Wp_parameters.debug ~level:3 "[cfg:get_exit_edges] -> empty";
    edges