Module Pdg_aux

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 analysis
val all_call_out_nodes : Db.Pdg.t ->
PdgTypes.Pdg.t ->
Cil_datatype.Stmt.t -> (PdgTypes.Node.t * PdgTypes.NodeSet.t) list