Module DataFlow

Import path

import csharp

Predicates

assignableDefinitionNode

Gets a node corresponding to the definition def.

exprNode

Gets a node corresponding to expression e.

flowsTo

Holds if data can flow (inter-procedurally) from source to sink.

localExprFlow

Holds if data can flow from e1 to e2 in zero or more local (intra-procedural) steps.

localFlow

Holds if data flows from source to sink in zero or more local (intra-procedural) steps.

localFlowStep

Holds if data flows from nodeFrom to nodeTo in exactly one local (intra-procedural) step.

parameterNode

Gets the node corresponding to the value of parameter p at function entry.

Classes

AssignableDefinitionNode

A definition, viewed as a node in a data flow graph.

BarrierGuard

A guard that validates some expression.

Configuration

A configuration of interprocedural data flow analysis. This defines sources, sinks, and any other configurable aspect of the analysis. Each use of the global data flow library must define its own unique extension of this abstract class. To create a configuration, extend this class with a subclass whose characteristic predicate is a unique singleton string. For example, write

ExprNode

An expression, viewed as a node in a data flow graph.

Node

An element, viewed as a node in a data flow graph. Either an expression (ExprNode) or a parameter (ParameterNode).

NonLocalJumpNode

A data flow node that jumps between callables. This can be extended in framework code to add additional data flow steps.

ParameterNode

The value of a parameter at function entry, viewed as a node in a data flow graph.

PartialPathNode

A Node augmented with a call context, an access path, and a configuration.

PathNode

A Node augmented with a call context (except for sinks), an access path, and a configuration. Only those PathNodes that are reachable from a source are generated.

Modules

PartialPathGraph

Provides the query predicates needed to include a graph in a path-problem query.

PathGraph

Provides the query predicates needed to include a graph in a path-problem query.