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.
typenode =PdgTypes.Node.t * Locations.Zone.t
module NS:sig..end
Node.t * Zone.t, with a special semantics for zones:
add n z (add n z' empty) results in (n, Zone.join z z') instead
of a set with two different elements.
typecall_interface =(PdgTypes.Node.t * NS.t) list
n, S of the list
is such that n is impacted if one of the nodes of S is impacted.val pretty_node : Format.formatter -> PdgTypes.Node.t * Locations.Zone.t -> unit
val node_list_to_set : ?z:Locations.Zone.t ->
(NS.key * Locations.Zone.t option) list -> NS.t
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) listfind_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 all_call_input_nodes : caller:Db.Pdg.t ->
callee:Kernel_function.t * PdgTypes.Pdg.t ->
Cil_datatype.Stmt.t -> (PdgTypes.Node.t * NS.t) listall_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.val all_call_out_nodes : callee:Db.Pdg.t ->
caller:PdgTypes.Pdg.t ->
Cil_datatype.Stmt.t -> (PdgTypes.Node.t * NS.t) listall_call_out_nodes ~callee ~caller stmt find all the nodes of callee
that define the Call/Out nodes of caller for the call to callee
that occurs at stmt. Each such out node is returned, with the set
of nodes that define it in callee