module Pdg_aux:sig
..end
find_call_input_nodes pdg_caller s ?z input
find all the nodes of
pdg_caller
that define the pdg input input
above the call statement s
.
If input
is an implicit input, its value is refined according to z
.
Useful functions that are not directly accessible through the other
Pdg modules.
val find_call_input_nodes : Db.Pdg.t ->
Cil_types.stmt ->
?z:Locations.Zone.t ->
PdgIndex.Signature.in_key -> (PdgTypes.Node.t * Locations.Zone.t option) list
find_call_input_nodes pdg_caller s ?z input
find all the nodes of
pdg_caller
that define the pdg input input
above the call statement s
.
If input
is an implicit input, its value is refined according to z
.val node_undef_list_to_set : (PdgTypes.NodeSet.elt * Locations.Zone.t option) list -> PdgTypes.NodeSet.t
val all_call_input_nodes : Db.Pdg.t ->
Kernel_function.t * PdgTypes.Pdg.t ->
Cil_datatype.Stmt.t -> (PdgTypes.Node.t * PdgTypes.NodeSet.t) list
all_call_input_nodes caller callee call_stmt
find all the nodes
above call_stmt
in the pdg of caller
that define the inputs
of callee
. Each input node in callee
is returned with the set
of nodes that define it in caller
. The zones potentially not
defined in caller
are skipped, as they are not useful for an impact
analysisval all_call_out_nodes : Db.Pdg.t ->
PdgTypes.Pdg.t ->
Cil_datatype.Stmt.t -> (PdgTypes.Node.t * PdgTypes.NodeSet.t) list