Package it.unive.lisa.interprocedural
Class ContextBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A,H,V>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>>
- java.lang.Object
-
- it.unive.lisa.interprocedural.CallGraphBasedAnalysis<A,H,V>
-
- it.unive.lisa.interprocedural.ContextBasedAnalysis<A,H,V>
-
- Type Parameters:
A- the abstract state of the analysisH- the heap domainV- the value domain
- All Implemented Interfaces:
it.unive.lisa.interprocedural.InterproceduralAnalysis<A,H,V>
public class ContextBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A,H,V>,H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>> extends CallGraphBasedAnalysis<A,H,V>
A context sensitive interprocedural analysis. The context sensitivity is tuned by the kind ofContextSensitivityTokenused.
-
-
Field Summary
-
Fields inherited from class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
callgraph, program
-
-
Constructor Summary
Constructors Constructor Description ContextBasedAnalysis()Builds the analysis, usingSingleScopeTokens.ContextBasedAnalysis(ContextSensitivityToken token)Builds the analysis.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfixpoint(it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, java.lang.Class<? extends it.unive.lisa.util.collections.workset.WorkingSet<it.unive.lisa.program.cfg.statement.Statement>> fixpointWorkingSet, int wideningThreshold)it.unive.lisa.analysis.AnalysisState<A,H,V>getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.CFGCall call, it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.SymbolicExpression>[] parameters)java.util.Collection<it.unive.lisa.analysis.CFGWithAnalysisResults<A,H,V>>getAnalysisResultsOf(it.unive.lisa.program.cfg.CFG cfg)-
Methods inherited from class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
init, prepareEntryStateOfEntryPoint, resolve
-
-
-
-
Constructor Detail
-
ContextBasedAnalysis
public ContextBasedAnalysis()
Builds the analysis, usingSingleScopeTokens.
-
ContextBasedAnalysis
public ContextBasedAnalysis(ContextSensitivityToken token)
Builds the analysis.- Parameters:
token- an instance of the tokens to be used to partition w.r.t. context sensitivity
-
-
Method Detail
-
fixpoint
public final void fixpoint(it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, java.lang.Class<? extends it.unive.lisa.util.collections.workset.WorkingSet<it.unive.lisa.program.cfg.statement.Statement>> fixpointWorkingSet, int wideningThreshold) throws it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
- Throws:
it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
-
getAnalysisResultsOf
public final java.util.Collection<it.unive.lisa.analysis.CFGWithAnalysisResults<A,H,V>> getAnalysisResultsOf(it.unive.lisa.program.cfg.CFG cfg)
-
getAbstractResultOf
public final it.unive.lisa.analysis.AnalysisState<A,H,V> getAbstractResultOf(it.unive.lisa.program.cfg.statement.call.CFGCall call, it.unive.lisa.analysis.AnalysisState<A,H,V> entryState, it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.SymbolicExpression>[] parameters) throws it.unive.lisa.analysis.SemanticException
- Throws:
it.unive.lisa.analysis.SemanticException
-
-