PointsToAnalysis class

High-level API for points-to analysis results.

Provides convenient methods to query analysis results after running the Datalog engine.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

dumpFacts() → void
Dumps all facts for debugging.
getAllFieldsPointsTo(String heapId) Map<String, Set<String>>
Gets all fields of a heap object and what they point to.
getAllPointsTo() Map<int, Set<String>>
Gets all VarPointsTo relationships.
getCalledMethods(int callSite) Set<String>
Gets methods called at a specific call site.
getCallGraph() Map<int, Set<String>>
Gets the call graph as a map from call sites to methods.
getDeepImmutableObjects() Set<String>
Gets all deeply immutable heap objects.
getFieldPointsTo(String heapId, String fieldName) Set<String>
Gets what a heap object's field points to.
getMutableObjects() Set<String>
Gets all mutable heap objects.
getPointedBy(String heapId) Set<int>
Gets all variables that may point to a specific heap object.
getPointsTo(int varId) Set<String>
Gets all heap objects that a variable may point to.
getPointsToByName(String varName) Set<String>
Gets all heap objects that a variable (by name) may point to.
getReachableBlocks() Set<int>
Gets all reachable blocks.
getSummary() String
Gets a human-readable summary of the analysis.
isBlockReachable(int blockId) bool
Checks if a specific block is reachable.
isDeepImmutable(String heapId) bool
Checks if a heap object is deeply immutable.
isMutable(String heapId) bool
Checks if a heap object is mutable.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

analyzeCfg(ControlFlowGraph cfg) PointsToAnalysis
Creates and runs analysis on a CFG directly.
analyzeFile(FileIr ir) PointsToAnalysis
Creates and runs points-to analysis on a file IR.
analyzeFunction(FunctionIr ir) PointsToAnalysis
Creates and runs points-to analysis on a function IR.