A B C D E F G H I J K L M N O P R S T V W Z 
All Classes All Packages

A

abstractState - Variable in class it.unive.lisa.LiSAConfiguration
The AbstractState instance to run during the analysis.
AllocationSite - Class in it.unive.lisa.analysis.heap.pointbased
A heap identifier that track also the source location where it has been allocated and a field (optional).
AllocationSite(Type, String, boolean, CodeLocation) - Constructor for class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Builds an allocation site from its source code location (without field) and specifying if it is weak.
AllocationSite(Type, String, CodeLocation) - Constructor for class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Builds a strong allocation site from its source code location (without field).
AllocationSite(Type, String, SymbolicExpression, boolean, CodeLocation) - Constructor for class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Builds an allocation site from its source code location and its field and specifying if it is weak.
AllocationSite(Type, String, SymbolicExpression, CodeLocation) - Constructor for class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Builds a strong allocation site from its source code location and its field.
AllocationSites - Class in it.unive.lisa.analysis.heap.pointbased
A heap domain tracking sets of AllocationSite.
AllocationSites() - Constructor for class it.unive.lisa.analysis.heap.pointbased.AllocationSites
Builds an instance of HeapIdentiferSetLattice, corresponding to the top element.
analysisGraphs - Variable in class it.unive.lisa.LiSAConfiguration
Sets the format to use for dumping graph files, named <cfg signature>[optional numeric hash].<format>, in the working directory at the end of the analysis.
app - Variable in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
The application.
assign(I, E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
assume(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
assume(HeapEnvironment<AllocationSites>, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
assume(InferenceSystem<NonInterference>, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
assume(ValueEnvironment<C>, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
assumeBinaryExpression(ValueEnvironment<IntegerConstantPropagation>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
assumeBinaryExpression(ValueEnvironment<Interval>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Interval
 
assumeBinaryExpression(ValueEnvironment<Parity>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Parity
 
assumeBinaryExpression(ValueEnvironment<Sign>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
AvailableExpressions - Class in it.unive.lisa.analysis.dataflow
An implementation of the available expressions dataflow analysis, that focuses only on the expressions that are stored into some variable.
AvailableExpressions() - Constructor for class it.unive.lisa.analysis.dataflow.AvailableExpressions
Builds an empty available expressions object.
AvailableExpressions(ValueExpression) - Constructor for class it.unive.lisa.analysis.dataflow.AvailableExpressions
Builds the available expressions object.

B

bottom() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
bottom() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
bottom() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
bottom() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
bottom() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
bottom() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
bottom() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
bottom() - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
bottom() - Method in class it.unive.lisa.analysis.numeric.Interval
 
bottom() - Method in class it.unive.lisa.analysis.numeric.Parity
 
bottom() - Method in class it.unive.lisa.analysis.numeric.Sign
 
bottom() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
bottom() - Method in class it.unive.lisa.analysis.types.StaticTypes
 
bottom() - Method in class it.unive.lisa.interprocedural.CFGResults
 
bottom() - Method in class it.unive.lisa.interprocedural.FixpointResults
 
BOTTOM - Static variable in class it.unive.lisa.analysis.numeric.Interval
The abstract bottom element.
BOTTOM - Static variable in class it.unive.lisa.analysis.numeric.Parity
The abstract bottom element.
BOTTOM - Static variable in class it.unive.lisa.analysis.numeric.Sign
The abstract bottom element.

C

callgraph - Variable in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
The call graph used to resolve method calls.
callGraph - Variable in class it.unive.lisa.LiSAConfiguration
The CallGraph instance to use during the analysis.
CallGraphBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa.interprocedural
An interprocedural analysis based on a call graph.
CallGraphBasedAnalysis() - Constructor for class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
CartesianProduct<C extends CartesianProduct<C,​T1,​T2,​E,​I>,​T1 extends it.unive.lisa.analysis.SemanticDomain<T1,​E,​I> & it.unive.lisa.analysis.Lattice<T1>,​T2 extends it.unive.lisa.analysis.SemanticDomain<T2,​E,​I> & it.unive.lisa.analysis.Lattice<T2>,​E extends it.unive.lisa.symbolic.SymbolicExpression,​I extends it.unive.lisa.symbolic.value.Identifier> - Class in it.unive.lisa.analysis.combination
A generic Cartesian product abstract domain between two non-communicating SemanticDomains (i.e., no exchange of information between the abstract domains), assigning the same Identifiers and handling instances of the same SymbolicExpressions.
CartesianProduct(T1, T2) - Constructor for class it.unive.lisa.analysis.combination.CartesianProduct
Builds the Cartesian product abstract domain.
CFGResults<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa.interprocedural
A FunctionalLattice from ContextSensitivityTokens to CFGWithAnalysisResultss.
CFGResults(CFGWithAnalysisResults<A, H, V, T>) - Constructor for class it.unive.lisa.interprocedural.CFGResults
Builds a new result.
CHACallGraph - Class in it.unive.lisa.interprocedural.callgraph
A call graph constructed following the Class Hierarchy Analysis as defined in: Frank Tip and Jens Palsberg.
CHACallGraph() - Constructor for class it.unive.lisa.interprocedural.callgraph.CHACallGraph
 
configurableComponents() - Static method in class it.unive.lisa.LiSAFactory
Yields the collection of LiSAFactory.ConfigurableComponents that can be used to customize the analysis.
ConstantPropagation - Class in it.unive.lisa.analysis.dataflow
An implementation of the overflow-insensitive constant propagation dataflow analysis, that focuses only on integers.
ConstantPropagation() - Constructor for class it.unive.lisa.analysis.dataflow.ConstantPropagation
Builds an empty constant propagation object.
ConstantPropagation(Identifier, Integer) - Constructor for class it.unive.lisa.analysis.dataflow.ConstantPropagation
Builds the new constant propagation object.
contains(ContextSensitivityToken) - Method in class it.unive.lisa.interprocedural.CFGResults
Yields true if a result exists for the given token.
contains(CFG) - Method in class it.unive.lisa.interprocedural.FixpointResults
Yields true if a result exists for the given cfg.
ContextBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa.interprocedural
A context sensitive interprocedural analysis.
ContextBasedAnalysis() - Constructor for class it.unive.lisa.interprocedural.ContextBasedAnalysis
Builds the analysis, using SingleScopeTokens.
ContextBasedAnalysis(ContextSensitivityToken) - Constructor for class it.unive.lisa.interprocedural.ContextBasedAnalysis
Builds the analysis.
ContextInsensitiveToken - Class in it.unive.lisa.interprocedural
A context sensitive token that is always the same (aka, do not track any information about the call stack).
ContextSensitivityToken - Interface in it.unive.lisa.interprocedural
A token for interprocedural analysis that tunes the level of context sensitivity.

D

DEFAULT_WIDENING_THRESHOLD - Static variable in class it.unive.lisa.LiSAConfiguration
The default number of fixpoint iteration on a given node after which calls to Lattice.lub(Lattice) gets replaced with Lattice.widening(Lattice).
DOT - it.unive.lisa.LiSAConfiguration.GraphType
Graphs are dumped in Dot format.

E

empty() - Method in class it.unive.lisa.interprocedural.ContextInsensitiveToken
 
empty() - Method in interface it.unive.lisa.interprocedural.ContextSensitivityToken
A token without any context sensitivity.
empty() - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
empty() - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
eq(Sign) - Method in class it.unive.lisa.analysis.numeric.Sign
Tests if this instance is equal to the given one, returning a SemanticDomain.Satisfiability element.
equals(Object) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
equals(Object) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
equals(Object) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
equals(Object) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
equals(Object) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
equals(Object) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
equals(Object) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
equals(Object) - Method in class it.unive.lisa.analysis.numeric.Interval
 
equals(Object) - Method in class it.unive.lisa.analysis.numeric.Parity
 
equals(Object) - Method in class it.unive.lisa.analysis.numeric.Sign
 
equals(Object) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
equals(Object) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
equals(Object) - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
equals(Object) - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
equals(Object) - Method in class it.unive.lisa.LiSAConfiguration
 
equals(Object) - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
eval(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
eval(ValueExpression, TypeEnvironment<StaticTypes>, ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
eval(ValueExpression, ValueEnvironment<C>, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
evalBinaryExpression(BinaryOperator, NonInterference, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalBinaryExpression(BinaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
evalBinaryExpression(BinaryOperator, Interval, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Interval
 
evalBinaryExpression(BinaryOperator, Parity, Parity, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Parity
 
evalBinaryExpression(BinaryOperator, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
evalBinaryExpression(BinaryOperator, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalIdentifier(Identifier, InferenceSystem<NonInterference>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalIdentifier(Identifier, TypeEnvironment<InferredTypes>, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalIdentifier(Identifier, TypeEnvironment<StaticTypes>, ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
evalNonNullConstant(Constant, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Interval
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Parity
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
evalNullConstant(NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Parity
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
evalPushAny(PushAny, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalPushAny(PushAny, ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
evalTernaryExpression(TernaryOperator, NonInterference, NonInterference, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalTernaryExpression(TernaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
evalTernaryExpression(TernaryOperator, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalTypeCast(BinaryExpression, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalTypeConv(BinaryExpression, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalUnaryExpression(UnaryOperator, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
evalUnaryExpression(UnaryOperator, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
evalUnaryExpression(UnaryOperator, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Interval
 
evalUnaryExpression(UnaryOperator, Parity, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Parity
 
evalUnaryExpression(UnaryOperator, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
evalUnaryExpression(UnaryOperator, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
EVEN - Static variable in class it.unive.lisa.analysis.numeric.Parity
The abstract even element.

F

FieldSensitivePointBasedHeap - Class in it.unive.lisa.analysis.heap.pointbased
A field-sensitive point-based heap implementation that abstracts heap locations depending on their allocation sites, namely the position of the code where heap locations are generated.
FieldSensitivePointBasedHeap() - Constructor for class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap
Builds a new instance of field-sensitive point-based heap.
FieldSensitivePointBasedHeap(HeapEnvironment<AllocationSites>) - Constructor for class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap
Builds a new instance of field-sensitive point-based heap from its heap environment.
FieldSensitivePointBasedHeap.Rewriter - Class in it.unive.lisa.analysis.heap.pointbased
A BaseHeapDomain.Rewriter for the FieldSensitivePointBasedHeap domain.
fixpoint(AnalysisState<A, H, V, T>, Class<? extends WorkingSet<Statement>>, int) - Method in class it.unive.lisa.interprocedural.ContextBasedAnalysis
 
fixpoint(AnalysisState<A, H, V, T>, Class<? extends WorkingSet<Statement>>, int) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
FixpointResults<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa.interprocedural
A FunctionalLattice from CFGs to CFGResultss.
FixpointResults(CFGResults<A, H, V, T>) - Constructor for class it.unive.lisa.interprocedural.FixpointResults
Builds a new result.
fixpointWorkingSet - Variable in class it.unive.lisa.LiSAConfiguration
The concrete class of WorkingSet to be used in fixpoints.
forget(CFG) - Method in class it.unive.lisa.interprocedural.FixpointResults
Forgets all results about the given CFG.
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
forgetIdentifiersIf(Predicate<Identifier>) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
forgetIdentifiersIf(Predicate<Identifier>) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
forgetIdentifiersIf(Predicate<Identifier>) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
forgetIdentifiersIf(Predicate<Identifier>) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
from(PointBasedHeap) - Method in class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap
 
from(PointBasedHeap) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
Builds a point-based heap from a reference one.

G

gen(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
gen(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
gen(Identifier, ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
gen(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
gen(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
gen(ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
getAbstractResultOf(CFGCall, AnalysisState<A, H, V, T>, ExpressionSet<SymbolicExpression>[], StatementStore<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.ContextBasedAnalysis
 
getAbstractResultOf(CFGCall, AnalysisState<A, H, V, T>, ExpressionSet<SymbolicExpression>[], StatementStore<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
getAbstractResultOf(OpenCall, AnalysisState<A, H, V, T>, ExpressionSet<SymbolicExpression>[], StatementStore<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
 
getAbstractResultOf(OpenCall, AnalysisState<A, H, V, T>, ExpressionSet<SymbolicExpression>[], StatementStore<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
getAll() - Method in class it.unive.lisa.interprocedural.CFGResults
Yields all the results stored in this object, for any possible ContextSensitivityToken used.
getAlternatives() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
Yields the alternatives for this component, that is, the concrete classes that implements it.
getAnalysisResultsOf(CFG) - Method in class it.unive.lisa.interprocedural.ContextBasedAnalysis
 
getAnalysisResultsOf(CFG) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
getComponent() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
Yields the component represented by this LiSAFactory.ConfigurableComponent.
getDefaultFor(Class<T>, Object...) - Static method in class it.unive.lisa.LiSAFactory
Builds the default instance of the specified analysis component.
getDefaultInstance() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
Yields the default implementation for this component, that is, the concrete class that implements it and that will be used if the component is requested but the user did not specify which implementation to use (among the ones offered by LiSAFactory.ConfigurableComponent.getAlternatives().
getDefaultParameters() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
Yields the classes of the parameters passed by-default to the constructor of the default implementation for this component.
getDomainInstance(Class<T>) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
getField() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Yields the string that identifies the subfield of the location (AllocationSite.getLocationName()) that this allocation site has been allocated.
getInstance(Class<T>, Object...) - Static method in class it.unive.lisa.LiSAFactory
Creates an instance of the given component.
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
getKnownTypes() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
Yields the name of the types known to this domain instance.
getLocationName() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSite
Yields the code location string representation where this allocation site has been allocated.
getPossibleTypesOfReceiver(Expression, Set<Type>) - Method in class it.unive.lisa.interprocedural.callgraph.CHACallGraph
 
getPossibleTypesOfReceiver(Expression, Set<Type>) - Method in class it.unive.lisa.interprocedural.callgraph.RTACallGraph
 
getRuntimeTypes() - Method in class it.unive.lisa.analysis.types.InferredTypes


Caution: invoking this method on the top instance obtained through new InferredTypes().top() will return a null value.
getRuntimeTypes() - Method in class it.unive.lisa.analysis.types.StaticTypes


Caution: invoking this method on the top instance obtained through new StaticTypes().top() will return a null value.
getSingleton() - Static method in class it.unive.lisa.interprocedural.ContextInsensitiveToken
Return an instance of the class.
getSingleton() - Static method in class it.unive.lisa.interprocedural.RecursionFreeToken
Return an empty token.
getSingleton() - Static method in class it.unive.lisa.interprocedural.SingleScopeToken
Return an empty token.
getSubstitution() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
getSubstitution() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
getSubstitution() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
getSubstitution() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
getWarnings() - Method in class it.unive.lisa.LiSA
Yields an unmodifiable view of the warnings that have been generated during the analysis.
glb(C) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
glbAux(Interval) - Method in class it.unive.lisa.analysis.numeric.Interval
 
GRAPHML - it.unive.lisa.LiSAConfiguration.GraphType
Graphs are dumped in compound GraphML format.
GRAPHML_WITH_SUBNODES - it.unive.lisa.LiSAConfiguration.GraphType
Graphs are dumped in compound GraphML format.All nodes, including sub-nodes, are part of the graph, creating a compound graph.
gt(Sign) - Method in class it.unive.lisa.analysis.numeric.Sign
Tests if this instance is greater than the given one, returning a SemanticDomain.Satisfiability element.

H

hashCode() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
hashCode() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
hashCode() - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
hashCode() - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
hashCode() - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
hashCode() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
hashCode() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
hashCode() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
hashCode() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
hashCode() - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
hashCode() - Method in class it.unive.lisa.analysis.numeric.Interval
 
hashCode() - Method in class it.unive.lisa.analysis.numeric.Parity
 
hashCode() - Method in class it.unive.lisa.analysis.numeric.Sign
 
hashCode() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
hashCode() - Method in class it.unive.lisa.analysis.types.StaticTypes
 
hashCode() - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
hashCode() - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
hashCode() - Method in class it.unive.lisa.LiSAConfiguration
 
hashCode() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
heapEnv - Variable in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
An heap environment tracking which allocation sites are associated to each identifier.
HIGH_INT_ANNOTATION - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
The annotation used to mark high integrity variables.
HIGH_INT_MATCHER - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
HTML - it.unive.lisa.LiSAConfiguration.GraphType
Graphs are dumped as an html page using javascript to visualize the graphs.
HTML_WITH_SUBNODES - it.unive.lisa.LiSAConfiguration.GraphType
Graphs are dumped as an html page using javascript to visualize the graphs.

I

InferredTypes - Class in it.unive.lisa.analysis.types
An InferredValue holding a set of Types, representing the inferred runtime types of an Expression.
InferredTypes() - Constructor for class it.unive.lisa.analysis.types.InferredTypes
Builds the inferred types.
InferredTypes(boolean, Set<Type>) - Constructor for class it.unive.lisa.analysis.types.InferredTypes
Builds the inferred types, representing only the given set of Types.
InferredTypes(TypeSystem, Type) - Constructor for class it.unive.lisa.analysis.types.InferredTypes
Builds the inferred types, representing only the given Type.
InferredTypes(TypeSystem, Set<Type>) - Constructor for class it.unive.lisa.analysis.types.InferredTypes
Builds the inferred types, representing only the given set of Types.
init(Application, CallGraph, OpenCallPolicy) - Method in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
 
init(Application, CallGraph, OpenCallPolicy) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
IntegerConstantPropagation - Class in it.unive.lisa.analysis.numeric
The overflow-insensitive basic integer constant propagation abstract domain, tracking if a certain integer value has constant value or not, implemented as a BaseNonRelationalValueDomain, handling top and bottom values for the expression evaluation and bottom values for the expression satisfiability.
IntegerConstantPropagation() - Constructor for class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
Builds the top abstract value.
IntegerConstantPropagation(Integer) - Constructor for class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
Builds the abstract value for the given constant.
interproceduralAnalysis - Variable in class it.unive.lisa.LiSAConfiguration
The InterproceduralAnalysis instance to use during the analysis.
interval - Variable in class it.unive.lisa.analysis.numeric.Interval
The interval represented by this domain element.
Interval - Class in it.unive.lisa.analysis.numeric
The overflow-insensitive interval abstract domain, approximating integer values as the minimum integer interval containing them.
Interval() - Constructor for class it.unive.lisa.analysis.numeric.Interval
Builds the top interval.
Interval(int, int) - Constructor for class it.unive.lisa.analysis.numeric.Interval
Builds the interval.
Interval(IntInterval) - Constructor for class it.unive.lisa.analysis.numeric.Interval
Builds the interval.
Interval(MathNumber, MathNumber) - Constructor for class it.unive.lisa.analysis.numeric.Interval
Builds the interval.
is(int) - Method in class it.unive.lisa.analysis.numeric.Interval
Tests whether this interval instance corresponds (i.e., concretizes) exactly to the given integer.
isBottom() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
isBottom() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
isBottom() - Method in class it.unive.lisa.analysis.combination.ValueCartesianProduct
 
isBottom() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
isBottom() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
isBottom() - Method in class it.unive.lisa.analysis.numeric.Interval
 
isBottom() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
isEven() - Method in class it.unive.lisa.analysis.numeric.Parity
Yields whether or not this is the even parity.
isHighConfidentiality() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
Yields true if and only if this instance represents a high value for the confidentiality non interference analysis.
isHighIntegrity() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
Yields true if and only if this instance represents a high value for the integrity non interference analysis.
isLowConfidentiality() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
Yields true if and only if this instance represents a low value for the confidentiality non interference analysis.
isLowIntegrity() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
Yields true if and only if this instance represents a low value for the integrity non interference analysis.
isNegative() - Method in class it.unive.lisa.analysis.numeric.Sign
Yields whether or not this is the negative sign.
isOdd() - Method in class it.unive.lisa.analysis.numeric.Parity
Yields whether or not this is the odd parity.
isPositive() - Method in class it.unive.lisa.analysis.numeric.Sign
Yields whether or not this is the positive sign.
isTop() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
isTop() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
isTop() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
isTop() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
isTop() - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
isTop() - Method in class it.unive.lisa.analysis.numeric.Interval
 
isTop() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
isTop() - Method in class it.unive.lisa.analysis.types.StaticTypes
 
isZero() - Method in class it.unive.lisa.analysis.numeric.Sign
Yields whether or not this is the zero sign.
it.unive.lisa - package it.unive.lisa
 
it.unive.lisa.analysis.combination - package it.unive.lisa.analysis.combination
 
it.unive.lisa.analysis.dataflow - package it.unive.lisa.analysis.dataflow
 
it.unive.lisa.analysis.heap - package it.unive.lisa.analysis.heap
 
it.unive.lisa.analysis.heap.pointbased - package it.unive.lisa.analysis.heap.pointbased
 
it.unive.lisa.analysis.nonInterference - package it.unive.lisa.analysis.nonInterference
 
it.unive.lisa.analysis.numeric - package it.unive.lisa.analysis.numeric
 
it.unive.lisa.analysis.types - package it.unive.lisa.analysis.types
 
it.unive.lisa.interprocedural - package it.unive.lisa.interprocedural
 
it.unive.lisa.interprocedural.callgraph - package it.unive.lisa.interprocedural.callgraph
 
iterator() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 

J

jsonOutput - Variable in class it.unive.lisa.LiSAConfiguration
Sets whether or not a json report file, named report.json, should be created and dumped in the working directory at the end of the analysis.

K

kill(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
kill(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
kill(Identifier, ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
kill(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
kill(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
kill(ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 

L

left - Variable in class it.unive.lisa.analysis.combination.CartesianProduct
The left-hand side abstract domain.
left - Variable in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
The left-hand side abstract domain.
lessOrEqual(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
lessOrEqualAux(C) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
lessOrEqualAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
lessOrEqualAux(PointBasedHeap) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
lessOrEqualAux(TypeBasedHeap) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
lessOrEqualAux(NonInterference) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
lessOrEqualAux(IntegerConstantPropagation) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
lessOrEqualAux(Interval) - Method in class it.unive.lisa.analysis.numeric.Interval
 
lessOrEqualAux(Parity) - Method in class it.unive.lisa.analysis.numeric.Parity
 
lessOrEqualAux(Sign) - Method in class it.unive.lisa.analysis.numeric.Sign
 
lessOrEqualAux(InferredTypes) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
lessOrEqualAux(StaticTypes) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
LiSA - Class in it.unive.lisa
This is the central class of the LiSA library.
LiSA(LiSAConfiguration) - Constructor for class it.unive.lisa.LiSA
Builds a new LiSA instance.
LiSAConfiguration - Class in it.unive.lisa
A holder for the configuration of a LiSA analysis.
LiSAConfiguration() - Constructor for class it.unive.lisa.LiSAConfiguration
 
LiSAConfiguration.GraphType - Enum in it.unive.lisa
The type of graphs that can be dumped by LiSA.
LiSAFactory - Class in it.unive.lisa
An utility class for instantiating analysis components, that is, modular pieces of the analysis that have several implementations.
LiSAFactory.ConfigurableComponent<T> - Class in it.unive.lisa
An analysis component that can be configured, that is, it has more than one implementation that can be modularly integrated into the analysis.
LiSARunner<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa
An auxiliary analysis runner for executing LiSA analysis.
LOW_CONF_ANNOTATION - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
The annotation used to mark low confidentiality variables.
LOW_CONF_MATCHER - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
lub(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
lubAux(C) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
lubAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
lubAux(AllocationSites) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
lubAux(PointBasedHeap) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
lubAux(TypeBasedHeap) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
lubAux(NonInterference) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
lubAux(IntegerConstantPropagation) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
lubAux(Interval) - Method in class it.unive.lisa.analysis.numeric.Interval
 
lubAux(Parity) - Method in class it.unive.lisa.analysis.numeric.Parity
 
lubAux(Sign) - Method in class it.unive.lisa.analysis.numeric.Sign
 
lubAux(InferredTypes) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
lubAux(StaticTypes) - Method in class it.unive.lisa.analysis.types.StaticTypes
 

M

mk(CFGWithAnalysisResults<A, H, V, T>, Map<ContextSensitivityToken, CFGWithAnalysisResults<A, H, V, T>>) - Method in class it.unive.lisa.interprocedural.CFGResults
 
mk(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
mk(PointBasedHeap) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
mk(TypeBasedHeap) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
mk(CFGResults<A, H, V, T>, Map<CFG, CFGResults<A, H, V, T>>) - Method in class it.unive.lisa.interprocedural.FixpointResults
 
mk(Set<AllocationSite>) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
mk(T1, T2) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
Builds a new instance of Cartesian product.
mk(T1, T2) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
Builds a new instance of Cartesian product.
mk(T1, T2) - Method in class it.unive.lisa.analysis.combination.ValueCartesianProduct
 
ModularWorstCaseAnalysis<A extends it.unive.lisa.analysis.AbstractState<A,​H,​V,​T>,​H extends it.unive.lisa.analysis.heap.HeapDomain<H>,​V extends it.unive.lisa.analysis.value.ValueDomain<V>,​T extends it.unive.lisa.analysis.value.TypeDomain<T>> - Class in it.unive.lisa.interprocedural
A worst case modular analysis were all cfg calls are treated as open calls.
ModularWorstCaseAnalysis() - Constructor for class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
Builds the interprocedural analysis.
MonolithicHeap - Class in it.unive.lisa.analysis.heap
A monolithic heap implementation that abstracts all heap locations to a unique identifier.
MonolithicHeap() - Constructor for class it.unive.lisa.analysis.heap.MonolithicHeap
 
MonolithicHeap.Rewriter - Class in it.unive.lisa.analysis.heap
A BaseHeapDomain.Rewriter for the MonolithicHeap domain.

N

NEG - Static variable in class it.unive.lisa.analysis.numeric.Sign
The abstract negative element.
NI_BOTTOM - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
The value to use for bottom non interference levels.
NI_HIGH - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
The value to use for high non interference levels.
NI_LOW - Static variable in class it.unive.lisa.analysis.nonInterference.NonInterference
The value to use for low non interference levels.
NONE - it.unive.lisa.LiSAConfiguration.GraphType
No graphs are dumped.
NonInterference - Class in it.unive.lisa.analysis.nonInterference
The type-system based implementation of the non interference analysis.
NonInterference() - Constructor for class it.unive.lisa.analysis.nonInterference.NonInterference
Builds a new instance of non interference, referring to the top element of the lattice.
NonInterference(byte, byte) - Constructor for class it.unive.lisa.analysis.nonInterference.NonInterference
Builds the abstract value for the given confidentiality and integrity values.
NonRelationalValueCartesianProduct<C extends NonRelationalValueCartesianProduct<C,​T1,​T2>,​T1 extends it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<T1>,​T2 extends it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<T2>> - Class in it.unive.lisa.analysis.combination
A generic Cartesian product abstract domain between two non-communicating NonRelationalValueDomains (i.e., no exchange of information between the abstract domains), assigning the same Identifiers and handling instances of the same SymbolicExpressions.
NonRelationalValueCartesianProduct(T1, T2) - Constructor for class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
Builds the Cartesian product abstract domain.

O

ODD - Static variable in class it.unive.lisa.analysis.numeric.Parity
The abstract odd element.
openCallPolicy - Variable in class it.unive.lisa.LiSAConfiguration
The OpenCallPolicy to be used for computing the result of OpenCalls.
opposite() - Method in class it.unive.lisa.analysis.numeric.Sign
Yields the sign opposite to this one.

P

Parity - Class in it.unive.lisa.analysis.numeric
The overflow-insensitive Parity abstract domain, tracking if a numeric value is even or odd, implemented as a BaseNonRelationalValueDomain, handling top and bottom values for the expression evaluation and bottom values for the expression satisfiability.
Parity() - Constructor for class it.unive.lisa.analysis.numeric.Parity
Builds the parity abstract domain, representing the top of the parity abstract domain.
Parity(byte) - Constructor for class it.unive.lisa.analysis.numeric.Parity
Builds the parity instance for the given parity value.
PointBasedHeap - Class in it.unive.lisa.analysis.heap.pointbased
A field-insensitive point-based heap implementation that abstracts heap locations depending on their allocation sites, namely the position of the code where heap locations are generated.
PointBasedHeap() - Constructor for class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
Builds a new instance of field-insensitive point-based heap.
PointBasedHeap(HeapEnvironment<AllocationSites>) - Constructor for class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
Builds a new instance of field-insensitive point-based heap from its heap environment.
PointBasedHeap.Rewriter - Class in it.unive.lisa.analysis.heap.pointbased
A BaseHeapDomain.Rewriter for the PointBasedHeap domain.
policy - Variable in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
The policy to evaluate results of open calls.
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
popToken() - Method in class it.unive.lisa.interprocedural.ContextInsensitiveToken
 
popToken() - Method in interface it.unive.lisa.interprocedural.ContextSensitivityToken
Creates a context sensitive token popping the scope on top of the stack.
popToken() - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
popToken() - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
POS - Static variable in class it.unive.lisa.analysis.numeric.Sign
The abstract positive element.
prepareEntryStateOfEntryPoint(AnalysisState<A, H, V, T>, CFG) - Method in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
Prepare and entry state for the analysis of a method by renaming parameters.
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
pushToken(ScopeToken) - Method in class it.unive.lisa.interprocedural.ContextInsensitiveToken
 
pushToken(ScopeToken) - Method in interface it.unive.lisa.interprocedural.ContextSensitivityToken
Creates a context sensitive token with the given scope on the top of the stack.
pushToken(ScopeToken) - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
pushToken(ScopeToken) - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
putResult(ContextSensitivityToken, CFGWithAnalysisResults<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.CFGResults
Stores the result of a fixpoint computation on a cfg, if needed.
putResult(CFG, ContextSensitivityToken, CFGWithAnalysisResults<A, H, V, T>) - Method in class it.unive.lisa.interprocedural.FixpointResults
Stores the result of a fixpoint computation on a cfg.

R

ReachingDefinitions - Class in it.unive.lisa.analysis.dataflow
An implementation of the reaching definition dataflow analysis.
ReachingDefinitions() - Constructor for class it.unive.lisa.analysis.dataflow.ReachingDefinitions
Builds an empty reaching definition object.
ReachingDefinitions(Identifier, ProgramPoint) - Constructor for class it.unive.lisa.analysis.dataflow.ReachingDefinitions
Builds a new reaching definition object.
RecursionFreeToken - Class in it.unive.lisa.interprocedural
A context sensitive token representing an entire call chain up until a recursion.
registerDefaultFor(Class<?>, Class<?>) - Static method in class it.unive.lisa.LiSAFactory
Registers a default implementation for component, taking precedence over the predefined defaults.
registerDefaultParametersFor(Class<?>, Class<?>...) - Static method in class it.unive.lisa.LiSAFactory
Registers the types (i.e.
representation() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
representation() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
representation() - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
representation() - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
representation() - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
representation() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
representation() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
representation() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
representation() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
representation() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
representation() - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
representation() - Method in class it.unive.lisa.analysis.numeric.Interval
 
representation() - Method in class it.unive.lisa.analysis.numeric.Parity
 
representation() - Method in class it.unive.lisa.analysis.numeric.Sign
 
representation() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
representation() - Method in class it.unive.lisa.analysis.types.StaticTypes
 
resolve(UnresolvedCall, Set<Type>[], SymbolAliasing) - Method in class it.unive.lisa.interprocedural.CallGraphBasedAnalysis
 
resolve(UnresolvedCall, Set<Type>[], SymbolAliasing) - Method in class it.unive.lisa.interprocedural.ModularWorstCaseAnalysis
 
rewrite(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
Rewriter() - Constructor for class it.unive.lisa.analysis.heap.MonolithicHeap.Rewriter
 
Rewriter() - Constructor for class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap.Rewriter
 
Rewriter() - Constructor for class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
Rewriter() - Constructor for class it.unive.lisa.analysis.heap.TypeBasedHeap.Rewriter
 
right - Variable in class it.unive.lisa.analysis.combination.CartesianProduct
The right-hand side abstract domain.
right - Variable in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
The right-hand side abstract domain.
RTACallGraph - Class in it.unive.lisa.interprocedural.callgraph
A call graph constructed following the Rapid Type Analysis as defined in: Frank Tip and Jens Palsberg.
RTACallGraph() - Constructor for class it.unive.lisa.interprocedural.callgraph.RTACallGraph
 
run(Program...) - Method in class it.unive.lisa.LiSA
Runs LiSA, executing all the checks that have been added.

S

satisfies(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
satisfies(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
satisfies(ValueExpression, ValueEnvironment<C>, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
satisfiesBinaryExpression(BinaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
satisfiesBinaryExpression(BinaryOperator, Interval, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Interval
 
satisfiesBinaryExpression(BinaryOperator, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
satisfiesBinaryExpression(BinaryOperator, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
satisfiesBinaryExpression(BinaryOperator, StaticTypes, StaticTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
satisfiesTernaryExpression(TernaryOperator, Sign, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.numeric.Sign
 
semanticChecks - Variable in class it.unive.lisa.LiSAConfiguration
The collection of SemanticChecks to execute.
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
serializeInputs - Variable in class it.unive.lisa.LiSAConfiguration
Whether or not the inputs CFGs to the analysis should be dumped in json format before the analysis starts.
serializeResults - Variable in class it.unive.lisa.LiSAConfiguration
Whether or not the results of the analysis (if executed) should be dumped in json format.
Sign - Class in it.unive.lisa.analysis.numeric
The basic overflow-insensitive Sign abstract domain, tracking zero, strictly positive and strictly negative integer values, implemented as a BaseNonRelationalValueDomain, handling top and bottom values for the expression evaluation and bottom values for the expression satisfiability.
Sign() - Constructor for class it.unive.lisa.analysis.numeric.Sign
Builds the sign abstract domain, representing the top of the sign abstract domain.
Sign(byte) - Constructor for class it.unive.lisa.analysis.numeric.Sign
Builds the sign instance for the given sign value.
SingleScopeToken - Class in it.unive.lisa.interprocedural
A context sensitive token representing a single ScopeToken.
smallStepSemantics(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
StaticTypes - Class in it.unive.lisa.analysis.types
An InferredValue holding a set of Types, representing the inferred runtime types of an Expression.
StaticTypes() - Constructor for class it.unive.lisa.analysis.types.StaticTypes
Builds the inferred types.
syntacticChecks - Variable in class it.unive.lisa.LiSAConfiguration
The collection of SyntacticChecks to execute.

T

top() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
top() - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
top() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
top() - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
top() - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap
 
top() - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap
 
top() - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
top() - Method in class it.unive.lisa.analysis.numeric.IntegerConstantPropagation
 
top() - Method in class it.unive.lisa.analysis.numeric.Interval
 
top() - Method in class it.unive.lisa.analysis.numeric.Parity
 
top() - Method in class it.unive.lisa.analysis.numeric.Sign
 
top() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
top() - Method in class it.unive.lisa.analysis.types.StaticTypes
 
top() - Method in class it.unive.lisa.interprocedural.CFGResults
 
top() - Method in class it.unive.lisa.interprocedural.FixpointResults
 
TOP - Static variable in class it.unive.lisa.analysis.numeric.Interval
The abstract top ([-Inf, +Inf]) element.
TOP - Static variable in class it.unive.lisa.analysis.numeric.Parity
The abstract top element.
TOP - Static variable in class it.unive.lisa.analysis.numeric.Sign
The abstract top element.
toString() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
toString() - Method in class it.unive.lisa.analysis.dataflow.AvailableExpressions
 
toString() - Method in class it.unive.lisa.analysis.dataflow.ConstantPropagation
 
toString() - Method in class it.unive.lisa.analysis.dataflow.ReachingDefinitions
 
toString() - Method in class it.unive.lisa.interprocedural.ContextInsensitiveToken
 
toString() - Method in class it.unive.lisa.interprocedural.RecursionFreeToken
 
toString() - Method in class it.unive.lisa.interprocedural.SingleScopeToken
 
toString() - Method in class it.unive.lisa.LiSAConfiguration
 
toString() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.heap.pointbased.AllocationSites
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.types.StaticTypes
 
TypeBasedHeap - Class in it.unive.lisa.analysis.heap
A type-based heap implementation that abstracts heap locations depending on their types, i.e., all the heap locations with the same type are abstracted into a single unique identifier.
TypeBasedHeap() - Constructor for class it.unive.lisa.analysis.heap.TypeBasedHeap
Builds a new empty instance of TypeBasedHeap.
TypeBasedHeap(Set<String>) - Constructor for class it.unive.lisa.analysis.heap.TypeBasedHeap
Builds a new instance of TypeBasedHeap knowing the given types.
TypeBasedHeap.Rewriter - Class in it.unive.lisa.analysis.heap
A BaseHeapDomain.Rewriter for the TypeBasedHeap domain.

V

ValueCartesianProduct<T1 extends it.unive.lisa.analysis.value.ValueDomain<T1>,​T2 extends it.unive.lisa.analysis.value.ValueDomain<T2>> - Class in it.unive.lisa.analysis.combination
A Cartesian product between two non-communicating ValueDomains (i.e., no exchange of information between the abstract domains) assigning Identifiers and handling ValueExpressions.
ValueCartesianProduct(T1, T2) - Constructor for class it.unive.lisa.analysis.combination.ValueCartesianProduct
Builds the value Cartesian product.
valueOf(String) - Static method in enum it.unive.lisa.LiSAConfiguration.GraphType
Returns the enum constant of this type with the specified name.
values() - Static method in enum it.unive.lisa.LiSAConfiguration.GraphType
Returns an array containing the constants of this enum type, in the order they are declared.
variable(Identifier, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
variable(Identifier, ProgramPoint) - Method in class it.unive.lisa.analysis.nonInterference.NonInterference
 
visit(AccessChild, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap.Rewriter
 
visit(AccessChild, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap.Rewriter
 
visit(AccessChild, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
visit(AccessChild, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap.Rewriter
 
visit(HeapAllocation, Object...) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap.Rewriter
 
visit(HeapAllocation, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.FieldSensitivePointBasedHeap.Rewriter
 
visit(HeapAllocation, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapAllocation, Object...) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap.Rewriter
 
visit(HeapDereference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap.Rewriter
 
visit(HeapDereference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapDereference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap.Rewriter
 
visit(HeapReference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap.Rewriter
 
visit(HeapReference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapReference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.TypeBasedHeap.Rewriter
 
visit(Identifier, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 
visit(PushAny, Object...) - Method in class it.unive.lisa.analysis.heap.pointbased.PointBasedHeap.Rewriter
 

W

widening(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
wideningAux(C) - Method in class it.unive.lisa.analysis.combination.NonRelationalValueCartesianProduct
 
wideningAux(Interval) - Method in class it.unive.lisa.analysis.numeric.Interval
 
wideningThreshold - Variable in class it.unive.lisa.LiSAConfiguration
The number of fixpoint iteration on a given node after which calls to Lattice.lub(Lattice) gets replaced with Lattice.widening(Lattice).
workdir - Variable in class it.unive.lisa.LiSAConfiguration
The working directory for this instance of LiSA, that is, the directory files will be created, if any (log files excluded, use the logging configuration for controlling where those are placed).

Z

ZERO - Static variable in class it.unive.lisa.analysis.numeric.Interval
The abstract zero ([0, 0]) element.
ZERO - Static variable in class it.unive.lisa.analysis.numeric.Sign
The abstract zero element.
A B C D E F G H I J K L M N O P R S T V W Z 
All Classes All Packages