Class CP
- java.lang.Object
-
- soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
-
- soot.dava.toolkits.base.AST.structuredAnalysis.CP
-
public class CP extends StructuredAnalysis
-
-
Field Summary
-
Fields inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
DEBUG, DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CPTuplecheckForValueHints(ASTCondition cond, CPFlowSet input, boolean isElseBranch)DavaFlowSetcloneFlowSet(DavaFlowSet flowSet)Make a clone of the flowset The implementor should know when they want a shallow or deep cloneCPTuplecreateCPTupleIfPossible(Value a, Value b, CPFlowSet input)voidcreateInitialInput()DavaFlowSetemptyFlowSet()ObjectkillButGetValueForUse(Local left, CPFlowSet toReturn)DavaFlowSetnewInitialFlow()DavaFlowSetprocessASTIfElseNode(ASTIfElseNode node, DavaFlowSet input)DavaFlowSetprocessASTIfNode(ASTIfNode node, DavaFlowSet input)DavaFlowSetprocessStatement(Stmt s, DavaFlowSet input)Specific stmts within AST Constructs are processed through this method.DavaFlowSetprocessSwitchKey(Value key, DavaFlowSet input)Deal with the key in the switch constructDavaFlowSetprocessSynchronizedLocal(Local local, DavaFlowSet input)To deal with the local used for synch blocksDavaFlowSetprocessUnaryBinaryCondition(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.voidsetMergeType()-
Methods inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis
debug, debug, getAfterSet, getBeforeSet, getLabel, handleBreak, handleContinue, isDifferent, merge, mergeExplicitAndImplicit, print, process, processAbruptStatements, processASTDoWhileNode, processASTForLoopNode, processASTLabeledBlockNode, processASTMethodNode, processASTNode, processASTStatementSequenceNode, processASTSwitchNode, processASTSynchronizedBlockNode, processASTTryNode, processASTUnconditionalLoopNode, processASTWhileNode, processCondition, processSingleSubBodyNode
-
-
-
-
Method Detail
-
createInitialInput
public void createInitialInput()
-
emptyFlowSet
public DavaFlowSet emptyFlowSet()
- Specified by:
emptyFlowSetin classStructuredAnalysis
-
setMergeType
public void setMergeType()
- Specified by:
setMergeTypein classStructuredAnalysis
-
newInitialFlow
public DavaFlowSet newInitialFlow()
- Specified by:
newInitialFlowin classStructuredAnalysis
-
cloneFlowSet
public DavaFlowSet cloneFlowSet(DavaFlowSet flowSet)
Description copied from class:StructuredAnalysisMake a clone of the flowset The implementor should know when they want a shallow or deep clone- Specified by:
cloneFlowSetin classStructuredAnalysis
-
processUnaryBinaryCondition
public DavaFlowSet processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo 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. To be able to deal with entire aggregated conditions the user should wite their own implementation of the method processCondition- Specified by:
processUnaryBinaryConditionin classStructuredAnalysis
-
processSynchronizedLocal
public DavaFlowSet processSynchronizedLocal(Local local, DavaFlowSet input)
Description copied from class:StructuredAnalysisTo deal with the local used for synch blocks- Specified by:
processSynchronizedLocalin classStructuredAnalysis
-
processSwitchKey
public DavaFlowSet processSwitchKey(Value key, DavaFlowSet input)
Description copied from class:StructuredAnalysisDeal with the key in the switch construct- Specified by:
processSwitchKeyin classStructuredAnalysis
-
processStatement
public DavaFlowSet processStatement(Stmt s, DavaFlowSet input)
Description copied from class:StructuredAnalysisSpecific stmts within AST Constructs are processed through this method. It will be invoked everytime a stmt is encountered- Specified by:
processStatementin classStructuredAnalysis
-
processASTIfNode
public DavaFlowSet processASTIfNode(ASTIfNode node, DavaFlowSet input)
- Overrides:
processASTIfNodein classStructuredAnalysis
-
processASTIfElseNode
public DavaFlowSet processASTIfElseNode(ASTIfElseNode node, DavaFlowSet input)
- Overrides:
processASTIfElseNodein classStructuredAnalysis
-
checkForValueHints
public CPTuple checkForValueHints(ASTCondition cond, CPFlowSet input, boolean isElseBranch)
-
-