| Package | Description |
|---|---|
| soot.dava.toolkits.base.AST.structuredAnalysis |
| Modifier and Type | Class and Description |
|---|---|
class |
CPFlowSet |
class |
UnreachableCodeFinder.UnreachableCodeFlowSet |
| Modifier and Type | Method and Description |
|---|---|
DavaFlowSet<T> |
DavaFlowSet.clone() |
DavaFlowSet<T> |
DavaFlowSet.clone() |
DavaFlowSet |
CP.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
MustMayInitialize.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingCopies.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingDefs.cloneFlowSet(DavaFlowSet flowSet) |
abstract DavaFlowSet |
StructuredAnalysis.cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
abstract DavaFlowSet |
StructuredAnalysis.cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
DavaFlowSet |
MustMayInitialize.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingDefs.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
CP.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingCopies.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
CP.emptyFlowSet() |
DavaFlowSet |
MustMayInitialize.emptyFlowSet() |
DavaFlowSet |
ReachingCopies.emptyFlowSet() |
DavaFlowSet |
ReachingDefs.emptyFlowSet() |
abstract DavaFlowSet |
StructuredAnalysis.emptyFlowSet() |
DavaFlowSet |
UnreachableCodeFinder.emptyFlowSet() |
abstract DavaFlowSet |
StructuredAnalysis.emptyFlowSet() |
DavaFlowSet |
MustMayInitialize.emptyFlowSet() |
DavaFlowSet |
UnreachableCodeFinder.emptyFlowSet() |
DavaFlowSet |
ReachingDefs.emptyFlowSet() |
DavaFlowSet |
CP.emptyFlowSet() |
DavaFlowSet |
ReachingCopies.emptyFlowSet() |
DavaFlowSet |
StructuredAnalysis.getAfterSet(java.lang.Object afterThis) |
DavaFlowSet |
StructuredAnalysis.getAfterSet(java.lang.Object afterThis) |
DavaFlowSet |
StructuredAnalysis.getBeforeSet(java.lang.Object beforeThis) |
DavaFlowSet |
StructuredAnalysis.getBeforeSet(java.lang.Object beforeThis) |
DavaFlowSet |
ReachingCopies.getReachingCopies(java.lang.Object node) |
DavaFlowSet |
ReachingCopies.getReachingCopies(java.lang.Object node) |
DavaFlowSet |
StructuredAnalysis.handleBreak(java.lang.String label,
DavaFlowSet out,
ASTNode node)
Need to handleBreak stmts There can be explicit breaks (in which case
label is non null) There can always be implicit breaks ASTNode is non
null
|
DavaFlowSet |
UnreachableCodeFinder.handleBreak(java.lang.String label,
DavaFlowSet output,
ASTNode node) |
DavaFlowSet |
StructuredAnalysis.handleBreak(java.lang.String label,
DavaFlowSet out,
ASTNode node)
Need to handleBreak stmts There can be explicit breaks (in which case
label is non null) There can always be implicit breaks ASTNode is non
null
|
DavaFlowSet |
UnreachableCodeFinder.handleBreak(java.lang.String label,
DavaFlowSet output,
ASTNode node) |
DavaFlowSet |
StructuredAnalysis.handleContinue(java.lang.String label,
java.lang.Object output,
ASTNode node)
Need to handleContinue stmts There can be explicit continues (in which
case label is non null) There can always be implicit continues ASTNode is
non null
|
DavaFlowSet |
StructuredAnalysis.handleContinue(java.lang.String label,
java.lang.Object output,
ASTNode node)
Need to handleContinue stmts There can be explicit continues (in which
case label is non null) There can always be implicit continues ASTNode is
non null
|
DavaFlowSet |
UnreachableCodeFinder.ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
CP.newInitialFlow() |
DavaFlowSet |
MustMayInitialize.newInitialFlow() |
DavaFlowSet |
ReachingCopies.newInitialFlow() |
DavaFlowSet |
ReachingDefs.newInitialFlow() |
abstract DavaFlowSet |
StructuredAnalysis.newInitialFlow() |
DavaFlowSet |
UnreachableCodeFinder.newInitialFlow() |
abstract DavaFlowSet |
StructuredAnalysis.newInitialFlow() |
DavaFlowSet |
MustMayInitialize.newInitialFlow() |
DavaFlowSet |
UnreachableCodeFinder.newInitialFlow() |
DavaFlowSet |
ReachingDefs.newInitialFlow() |
DavaFlowSet |
CP.newInitialFlow() |
DavaFlowSet |
ReachingCopies.newInitialFlow() |
DavaFlowSet |
StructuredAnalysis.process(java.lang.Object body,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.process(java.lang.Object body,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTMethodNode(ASTMethodNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTMethodNode(ASTMethodNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTNode(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTNode(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processCondition(ASTCondition cond,
DavaFlowSet input)
This implementation breaks down the aggregated condition to the terminal
conditions which all have type ASTUnaryBinaryCondition.
|
DavaFlowSet |
StructuredAnalysis.processCondition(ASTCondition cond,
DavaFlowSet input)
This implementation breaks down the aggregated condition to the terminal
conditions which all have type ASTUnaryBinaryCondition.
|
DavaFlowSet |
StructuredAnalysis.processSingleSubBodyNode(ASTNode node,
DavaFlowSet input)
This method is called from the specialized ASTNodes.
|
DavaFlowSet |
StructuredAnalysis.processSingleSubBodyNode(ASTNode node,
DavaFlowSet input)
This method is called from the specialized ASTNodes.
|
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet input)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet input)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
CP.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSwitchKey(Value key,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processSwitchKey(Value key,
DavaFlowSet input)
Deal with the key in the switch construct
|
DavaFlowSet |
UnreachableCodeFinder.processSwitchKey(Value key,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processSwitchKey(Value key,
DavaFlowSet input)
Deal with the key in the switch construct
|
DavaFlowSet |
MustMayInitialize.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSwitchKey(Value key,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
CP.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSynchronizedLocal(Local local,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processSynchronizedLocal(Local local,
DavaFlowSet input)
To deal with the local used for synch blocks
|
DavaFlowSet |
UnreachableCodeFinder.processSynchronizedLocal(Local local,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processSynchronizedLocal(Local local,
DavaFlowSet input)
To deal with the local used for synch blocks
|
DavaFlowSet |
MustMayInitialize.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSynchronizedLocal(Local local,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
CP.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input)
To have maximum flexibility in analyzing conditions the analysis API
breaks down the aggregated conditions to simple unary or binary
conditions user defined code can then deal with each condition
separately.
|
DavaFlowSet |
UnreachableCodeFinder.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input)
To have maximum flexibility in analyzing conditions the analysis API
breaks down the aggregated conditions to simple unary or binary
conditions user defined code can then deal with each condition
separately.
|
DavaFlowSet |
MustMayInitialize.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getBreakSet(java.lang.String label) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getBreakSet(java.lang.String label) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getContinueSet(java.lang.String label) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getContinueSet(java.lang.String label) |
java.util.HashMap<java.io.Serializable,java.util.List<DavaFlowSet<T>>> |
DavaFlowSet.getImplicitBreaks() |
java.util.HashMap<java.io.Serializable,java.util.List<DavaFlowSet<T>>> |
DavaFlowSet.getImplicitBreaks() |
java.util.HashMap<java.io.Serializable,java.util.List<DavaFlowSet<T>>> |
DavaFlowSet.getImplicitContinues() |
java.util.HashMap<java.io.Serializable,java.util.List<DavaFlowSet<T>>> |
DavaFlowSet.getImplicitContinues() |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getImplicitlyBrokenSets(ASTNode node) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getImplicitlyBrokenSets(ASTNode node) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getImplicitlyContinuedSets(ASTNode node) |
java.util.List<DavaFlowSet<T>> |
DavaFlowSet.getImplicitlyContinuedSets(ASTNode node) |
| Modifier and Type | Method and Description |
|---|---|
void |
DavaFlowSet.addToBreakList(java.lang.String labelBroken,
DavaFlowSet<T> set)
When an explicit break statement is encountered this method should be
called to store the current davaflowset
|
void |
DavaFlowSet.addToBreakList(java.lang.String labelBroken,
DavaFlowSet<T> set)
When an explicit break statement is encountered this method should be
called to store the current davaflowset
|
void |
DavaFlowSet.addToContinueList(java.lang.String labelContinued,
DavaFlowSet<T> set)
When an explicit continue statement is encountered this method should be
called to store the current davaflowset
|
void |
DavaFlowSet.addToContinueList(java.lang.String labelContinued,
DavaFlowSet<T> set)
When an explicit continue statement is encountered this method should be
called to store the current davaflowset
|
void |
DavaFlowSet.addToImplicitBreaks(DAbruptStmt ab,
DavaFlowSet<T> set)
The next two methods take an abruptStmt as input along with a flowSet.
|
void |
DavaFlowSet.addToImplicitBreaks(DAbruptStmt ab,
DavaFlowSet<T> set)
The next two methods take an abruptStmt as input along with a flowSet.
|
void |
DavaFlowSet.addToImplicitContinues(DAbruptStmt ab,
DavaFlowSet<T> set) |
void |
DavaFlowSet.addToImplicitContinues(DAbruptStmt ab,
DavaFlowSet<T> set) |
DavaFlowSet |
CP.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
MustMayInitialize.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingCopies.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingDefs.cloneFlowSet(DavaFlowSet flowSet) |
abstract DavaFlowSet |
StructuredAnalysis.cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
UnreachableCodeFinder.UnreachableCodeFlowSet |
UnreachableCodeFinder.cloneFlowSet(DavaFlowSet flowSet) |
abstract DavaFlowSet |
StructuredAnalysis.cloneFlowSet(DavaFlowSet flowSet)
Make a clone of the flowset The implementor should know when they want a
shallow or deep clone
|
DavaFlowSet |
MustMayInitialize.cloneFlowSet(DavaFlowSet flowSet) |
UnreachableCodeFinder.UnreachableCodeFlowSet |
UnreachableCodeFinder.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingDefs.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
CP.cloneFlowSet(DavaFlowSet flowSet) |
DavaFlowSet |
ReachingCopies.cloneFlowSet(DavaFlowSet flowSet) |
void |
DavaFlowSet.copyInternalDataFrom(DavaFlowSet<T> fromThis) |
void |
DavaFlowSet.copyInternalDataFrom(DavaFlowSet<T> fromThis) |
void |
ReachingDefs.gen(DavaFlowSet in,
DefinitionStmt s) |
void |
ReachingDefs.gen(DavaFlowSet in,
DefinitionStmt s) |
void |
ReachingCopies.gen(DavaFlowSet in,
Local left,
Local right) |
void |
ReachingCopies.gen(DavaFlowSet in,
Local left,
Local right) |
DavaFlowSet |
StructuredAnalysis.handleBreak(java.lang.String label,
DavaFlowSet out,
ASTNode node)
Need to handleBreak stmts There can be explicit breaks (in which case
label is non null) There can always be implicit breaks ASTNode is non
null
|
DavaFlowSet |
UnreachableCodeFinder.handleBreak(java.lang.String label,
DavaFlowSet output,
ASTNode node) |
DavaFlowSet |
StructuredAnalysis.handleBreak(java.lang.String label,
DavaFlowSet out,
ASTNode node)
Need to handleBreak stmts There can be explicit breaks (in which case
label is non null) There can always be implicit breaks ASTNode is non
null
|
DavaFlowSet |
UnreachableCodeFinder.handleBreak(java.lang.String label,
DavaFlowSet output,
ASTNode node) |
DavaFlowSet |
UnreachableCodeFinder.ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node,
DavaFlowSet input) |
boolean |
StructuredAnalysis.isDifferent(DavaFlowSet oldObj,
DavaFlowSet newObj) |
boolean |
StructuredAnalysis.isDifferent(DavaFlowSet oldObj,
DavaFlowSet newObj) |
boolean |
StructuredAnalysis.isDifferent(DavaFlowSet oldObj,
DavaFlowSet newObj) |
boolean |
StructuredAnalysis.isDifferent(DavaFlowSet oldObj,
DavaFlowSet newObj) |
void |
ReachingCopies.kill(DavaFlowSet<ReachingCopies.LocalPair> in,
Local redefined) |
void |
ReachingCopies.kill(DavaFlowSet<ReachingCopies.LocalPair> in,
Local redefined) |
void |
ReachingDefs.kill(DavaFlowSet in,
Local redefined) |
void |
ReachingDefs.kill(DavaFlowSet in,
Local redefined) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.merge(DavaFlowSet in1,
DavaFlowSet in2) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.process(java.lang.Object body,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.process(java.lang.Object body,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processAbruptStatements(Stmt s,
DavaFlowSet input)
Whenever a statement has to be processed the first step is to invoke this
method.
|
DavaFlowSet |
UnreachableCodeFinder.processAbruptStatements(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTDoWhileNode(ASTDoWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTForLoopNode(ASTForLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfElseNode(ASTIfElseNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
CP.processASTIfNode(ASTIfNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTLabeledBlockNode(ASTLabeledBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTMethodNode(ASTMethodNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTMethodNode(ASTMethodNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTNode(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTNode(ASTNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTStatementSequenceNode(ASTStatementSequenceNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSwitchNode(ASTSwitchNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTTryNode(ASTTryNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processASTWhileNode(ASTWhileNode node,
DavaFlowSet input) |
DavaFlowSet |
StructuredAnalysis.processCondition(ASTCondition cond,
DavaFlowSet input)
This implementation breaks down the aggregated condition to the terminal
conditions which all have type ASTUnaryBinaryCondition.
|
DavaFlowSet |
StructuredAnalysis.processCondition(ASTCondition cond,
DavaFlowSet input)
This implementation breaks down the aggregated condition to the terminal
conditions which all have type ASTUnaryBinaryCondition.
|
DavaFlowSet |
StructuredAnalysis.processSingleSubBodyNode(ASTNode node,
DavaFlowSet input)
This method is called from the specialized ASTNodes.
|
DavaFlowSet |
StructuredAnalysis.processSingleSubBodyNode(ASTNode node,
DavaFlowSet input)
This method is called from the specialized ASTNodes.
|
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet input)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processStatement(Stmt s,
DavaFlowSet input)
Specific stmts within AST Constructs are processed through this method.
|
DavaFlowSet |
MustMayInitialize.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
UnreachableCodeFinder.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processStatement(Stmt s,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processStatement(Stmt s,
DavaFlowSet input) |
DavaFlowSet |
CP.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSwitchKey(Value key,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processSwitchKey(Value key,
DavaFlowSet input)
Deal with the key in the switch construct
|
DavaFlowSet |
UnreachableCodeFinder.processSwitchKey(Value key,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processSwitchKey(Value key,
DavaFlowSet input)
Deal with the key in the switch construct
|
DavaFlowSet |
MustMayInitialize.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSwitchKey(Value key,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSwitchKey(Value key,
DavaFlowSet input) |
DavaFlowSet |
CP.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSynchronizedLocal(Local local,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processSynchronizedLocal(Local local,
DavaFlowSet input)
To deal with the local used for synch blocks
|
DavaFlowSet |
UnreachableCodeFinder.processSynchronizedLocal(Local local,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processSynchronizedLocal(Local local,
DavaFlowSet input)
To deal with the local used for synch blocks
|
DavaFlowSet |
MustMayInitialize.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processSynchronizedLocal(Local local,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processSynchronizedLocal(Local local,
DavaFlowSet input) |
DavaFlowSet |
CP.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
MustMayInitialize.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet inSet) |
abstract DavaFlowSet |
StructuredAnalysis.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input)
To have maximum flexibility in analyzing conditions the analysis API
breaks down the aggregated conditions to simple unary or binary
conditions user defined code can then deal with each condition
separately.
|
DavaFlowSet |
UnreachableCodeFinder.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
abstract DavaFlowSet |
StructuredAnalysis.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input)
To have maximum flexibility in analyzing conditions the analysis API
breaks down the aggregated conditions to simple unary or binary
conditions user defined code can then deal with each condition
separately.
|
DavaFlowSet |
MustMayInitialize.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
UnreachableCodeFinder.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingDefs.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet inSet) |
DavaFlowSet |
CP.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
DavaFlowSet |
ReachingCopies.processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
DavaFlowSet input) |
| Modifier and Type | Method and Description |
|---|---|
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
DavaFlowSet |
StructuredAnalysis.mergeExplicitAndImplicit(java.lang.String label,
DavaFlowSet output,
java.util.List<DavaFlowSet> explicitSet,
java.util.List<DavaFlowSet> implicitSet) |
| Constructor and Description |
|---|
DavaFlowSet(DavaFlowSet<T> other) |
DavaFlowSet(DavaFlowSet<T> other) |