module Sets:sig
..end
Provides function to extract information from the PDG.
typenodes_and_undef =
(PdgTypes.Node.t * Locations.Zone.t option) list * Locations.Zone.t option
val find_stmt_node : PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t
val find_simple_stmt_nodes : PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t list
val find_stmt_and_blocks_nodes : PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t list
val find_location_nodes_at_stmt : PdgTypes.Pdg.t ->
Cil_types.stmt -> before:bool -> Locations.Zone.t -> nodes_and_undef
val find_location_nodes_at_end : PdgTypes.Pdg.t -> Locations.Zone.t -> nodes_and_undef
val find_location_nodes_at_begin : PdgTypes.Pdg.t -> Locations.Zone.t -> nodes_and_undef
val find_label_node : PdgTypes.Pdg.t -> Cil_types.stmt -> Cil_types.label -> PdgTypes.Node.t
val find_decl_var_node : PdgTypes.Pdg.t -> Cil_types.varinfo -> PdgTypes.Node.t
val find_input_node : PdgTypes.Pdg.t -> int -> PdgTypes.Node.t
val find_output_node : PdgTypes.Pdg.t -> PdgTypes.Node.t
val find_all_input_nodes : PdgTypes.Pdg.t -> PdgTypes.Node.t list
val find_entry_point_node : PdgTypes.Pdg.t -> PdgTypes.Node.t
val find_top_input_node : PdgTypes.Pdg.t -> PdgTypes.Node.t
val find_output_nodes : PdgTypes.Pdg.t -> PdgIndex.Signature.out_key -> nodes_and_undef
val find_call_ctrl_node : PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t
val find_call_num_input_node : PdgTypes.Pdg.t -> Cil_types.stmt -> int -> PdgTypes.Node.t
val find_call_input_nodes : PdgTypes.Pdg.t ->
Cil_types.stmt -> PdgIndex.Signature.in_key -> nodes_and_undef
val find_call_output_node : PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t
val find_call_stmts : Cil_types.kernel_function ->
caller:Cil_types.kernel_function -> Cil_types.stmt list
val find_call_out_nodes_to_select : PdgTypes.Pdg.t ->
PdgTypes.NodeSet.t ->
PdgTypes.Pdg.t -> Cil_types.stmt -> PdgTypes.Node.t list
out
such that
find_output_nodes pdg_called out_key
intersects called_selected_nodes
.val find_in_nodes_to_select_for_this_call : PdgTypes.Pdg.t ->
PdgTypes.NodeSet.t ->
Cil_types.stmt -> PdgTypes.Pdg.t -> PdgTypes.Node.t list
val direct_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
gives the list of nodes that the given node depends on,
without looking at the kind of dependency.
val direct_data_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val direct_ctrl_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val direct_addr_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val find_nodes_all_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t list -> PdgTypes.Node.t list
val find_nodes_all_data_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t list -> PdgTypes.Node.t list
val find_nodes_all_ctrl_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t list -> PdgTypes.Node.t list
val find_nodes_all_addr_dpds : PdgTypes.Pdg.t -> PdgTypes.Node.t list -> PdgTypes.Node.t list
val direct_uses : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val direct_data_uses : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val direct_ctrl_uses : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val direct_addr_uses : PdgTypes.Pdg.t -> PdgTypes.Node.t -> PdgTypes.Node.t list
val all_uses : PdgTypes.Pdg.t -> PdgTypes.Node.t list -> PdgTypes.Node.t list
(PdgTypes.Node.t -> PdgTypes.Node.t list) ->
PdgTypes.Node.t list -> PdgTypes.Node.t list
: