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
All Classes All Packages
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
SemanticDomain
s (i.e., no exchange of information between the abstract domains), assigning the sameIdentifier
s and handling instances of the sameSymbolicExpression
s. - 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
- 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.ConfigurableComponent
s 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 giventoken
. - contains(CFG) - Method in class it.unive.lisa.interprocedural.FixpointResults
-
Yields
true
if a result exists for the givencfg
. - 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
SingleScopeToken
s. - 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 withLattice.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 theFieldSensitivePointBasedHeap
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
- 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 throughnew InferredTypes().top()
will return anull
value. - getRuntimeTypes() - Method in class it.unive.lisa.analysis.types.StaticTypes
-
Caution: invoking this method on the top instance obtained throughnew StaticTypes().top()
will return anull
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
-
AnnotationMatcher
forNonInterference.HIGH_INT_ANNOTATION
. - 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 ofType
s, representing the inferred runtime types of anExpression
. - 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
Type
s. - 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
Type
s. - 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 ahigh
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 ahigh
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 alow
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 alow
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
-
AnnotationMatcher
forNonInterference.LOW_CONF_ANNOTATION
. - 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 theMonolithicHeap
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
NonRelationalValueDomain
s (i.e., no exchange of information between the abstract domains), assigning the sameIdentifier
s and handling instances of the sameSymbolicExpression
s. - 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 ofOpenCall
s. - 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 thePointBasedHeap
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
SemanticCheck
s 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
CFG
s 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 ofType
s, representing the inferred runtime types of anExpression
. - 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
SyntacticCheck
s 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 theTypeBasedHeap
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
ValueDomain
s (i.e., no exchange of information between the abstract domains) assigningIdentifier
s and handlingValueExpression
s. - 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 withLattice.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.
All Classes All Packages