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

A

AbstractState<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Interface in it.unive.lisa.analysis
An abstract state of the analysis, composed by a heap state modeling the memory layout and a value state modeling values of program variables and memory locations.
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.heap.AccessChild
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.heap.HeapDereference
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.heap.HeapReference
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.SymbolicExpression
Accepts an ExpressionVisitor, visiting this expression recursively.
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.Constant
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.MemoryPointer
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.PushAny
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.Skip
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
accept(ExpressionVisitor<T>, Object...) - Method in class it.unive.lisa.symbolic.value.Variable
 
accept(GraphVisitor<G, N, E, V>, V) - Method in interface it.unive.lisa.util.datastructures.graph.Edge
Accepts the given GraphVisitor.
accept(GraphVisitor<G, N, E, V>, V) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Accepts the given GraphVisitor.
accept(GraphVisitor<G, N, E, V>, V) - Method in interface it.unive.lisa.util.datastructures.graph.Node
Accepts the given GraphVisitor.
accept(GraphVisitor<BaseCallGraph, CallGraphNode, CallGraphEdge, V>, V) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
accept(GraphVisitor<BaseCallGraph, CallGraphNode, CallGraphEdge, V>, V) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.edge.Edge
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.Call
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.Literal
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.Ret
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.UnaryStatement
 
accept(GraphVisitor<CFG, Statement, Edge, V>, V) - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
AccessChild - Class in it.unive.lisa.symbolic.heap
An expression that accesses a memory location that is a child of another one, that is, the former is reachable from the latter.
AccessChild(ExternalSet<Type>, SymbolicExpression, SymbolicExpression, CodeLocation) - Constructor for class it.unive.lisa.symbolic.heap.AccessChild
Builds the child access.
AccessGlobal - Class in it.unive.lisa.program.cfg.statement
An access to a Global of a Unit.
AccessGlobal(CFG, CodeLocation, Unit, Global) - Constructor for class it.unive.lisa.program.cfg.statement.AccessGlobal
Builds the global access, happening at the given location in the program.
AccessInstanceGlobal - Class in it.unive.lisa.program.cfg.statement
An access to an instance Global of a CompilationUnit.
AccessInstanceGlobal(CFG, CodeLocation, Expression, Global) - Constructor for class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
Builds the global access, happening at the given location in the program.
add(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the result of this + other.
add(T) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
add(T) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
addAll(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
addAll(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Adds to this set all elements contained into other.
addAll(Collection<? extends T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
addAll(Collection<? extends T>) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
addAnnotation(Annotation) - Method in class it.unive.lisa.program.annotations.Annotations
Adds an annotations to this annotation collection.
addAnnotation(Annotation) - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Adds an annotations to this descriptor.
addAnnotation(Annotation) - Method in class it.unive.lisa.program.cfg.Parameter
Adds an annotations to this parameter.
addAnnotation(Annotation) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Adds an annotation to the annotations of this variable table entry.
addAnnotation(Annotation) - Method in class it.unive.lisa.program.CompilationUnit
Adds an annotation to the annotations of this compilation unit.
addAnnotation(Annotation) - Method in class it.unive.lisa.program.Global
Adds an annotation to the annotations of this global.
addAnnotation(Annotation) - Method in class it.unive.lisa.symbolic.value.Identifier
Adds an annotation to the annotations of this identifier.
addCFG(CFG) - Method in class it.unive.lisa.program.Unit
Adds a new CFG, identified by its signature (CFGDescriptor.getSignature()), to this unit.
addCompilationUnit(CompilationUnit) - Method in class it.unive.lisa.program.Program
Adds a new CompilationUnit, identified by its name (Unit.getName()), to this program.
addConstruct(NativeCFG) - Method in class it.unive.lisa.program.Unit
Adds a new NativeCFG, identified by its signature (CFGDescriptor.getSignature()), to this unit.
addControlFlowStructure(ControlFlowStructure) - Method in class it.unive.lisa.program.cfg.CFG
Adds the given ControlFlowStructure to the ones contained in this cfg.
addEdge(E) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Adds an edge to this matrix.
addEdge(E) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Adds an edge to this graph.
addEdge(E, String, String) - Method in class it.unive.lisa.outputs.DotGraph
Adds an edge to the graph.
addEntryPoint(CFG) - Method in class it.unive.lisa.program.Program
Adds a new CFG to the entry points of this program.
addGlobal(Global) - Method in class it.unive.lisa.program.Unit
Adds a new Global, identified by its name (Global.getName()), to this unit.
addInstanceCFG(CFG) - Method in class it.unive.lisa.program.CompilationUnit
Adds a new instance CFG, identified by its signature (CFGDescriptor.getSignature()), to this unit.
addInstanceConstruct(NativeCFG) - Method in class it.unive.lisa.program.CompilationUnit
Adds a new instance NativeCFG, identified by its signature (CFGDescriptor.getSignature()), to this unit.
addInstanceGlobal(Global) - Method in class it.unive.lisa.program.CompilationUnit
Adds a new instance Global, identified by its name (Global.getName()), to this unit.
addNode(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Adds the given node to the set of nodes.
addNode(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Adds the given node to the set of nodes, optionally setting that as root.
addNode(N, boolean) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Adds the given node to the set of nodes, optionally marking this as entrypoint (that is, reachable executable from other graphs).
addNode(N, boolean, boolean, Function<N, String>) - Method in class it.unive.lisa.outputs.DotGraph
Adds a node to the graph.
addSemanticCheck(SemanticCheck) - Method in class it.unive.lisa.LiSAConfiguration
Adds the given semantic check to the ones that will be executed.
addSemanticChecks(Collection<SemanticCheck>) - Method in class it.unive.lisa.LiSAConfiguration
Adds the given semantic checks to the ones that will be executed.
addSource(Identifier) - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Adds an Identifier to the set of identifiers that are the sources of this replacement.
addSuperUnit(CompilationUnit) - Method in class it.unive.lisa.program.CompilationUnit
Adds a new CompilationUnit as superunit of this unit.
addSyntacticCheck(SyntacticCheck) - Method in class it.unive.lisa.LiSAConfiguration
Adds the given syntactic check to the ones that will be executed.
addSyntacticChecks(Collection<SyntacticCheck>) - Method in class it.unive.lisa.LiSAConfiguration
Adds the given syntactic checks to the ones that will be executed.
addTarget(Identifier) - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Adds an Identifier to the set of identifiers that are the targets of this replacement.
addVariable(VariableTableEntry) - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Adds a VariableTableEntry at the end of the variable table.
adjacencyMatrix - Variable in class it.unive.lisa.util.datastructures.graph.Graph
The adjacency matrix of this graph, mapping nodes to the collection of edges attached to it.
AdjacencyMatrix<N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​G extends Graph<G,​N,​E>> - Class in it.unive.lisa.util.datastructures.graph
An adjacency matrix for a graph that has Nodes as nodes and Edges as edges.
AdjacencyMatrix() - Constructor for class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Builds a new matrix.
AdjacencyMatrix(AdjacencyMatrix<N, E, G>) - Constructor for class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Copies the given matrix by keeping the same edge ExternalSetCache, shallow-copying the Nodes and deep-copying the values.
AdjacencyMatrix.NodeEdges<N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​G extends Graph<G,​N,​E>> - Class in it.unive.lisa.util.datastructures.graph
Utility class for representing the edges tied to a node, split into two sets: ingoing and outgoing.
afterExecution(T) - Method in interface it.unive.lisa.checks.Check
Callback invoked only once after the end of the inspection of the program.
allInstances() - Method in class it.unive.lisa.symbolic.types.BoolType
 
allInstances() - Method in class it.unive.lisa.symbolic.types.IntType
 
allInstances() - Method in class it.unive.lisa.symbolic.types.StringType
 
allInstances() - Method in class it.unive.lisa.type.NullType
 
allInstances() - Method in interface it.unive.lisa.type.Type
Yields all possible instances of this type, including itself.
allInstances() - Method in class it.unive.lisa.type.TypeTokenType
 
allInstances() - Method in class it.unive.lisa.type.Untyped
 
allInstances() - Method in class it.unive.lisa.type.VoidType
 
allMatch(Predicate<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields true iff all the elements contained in this set satisfy the given predicate.
AllocationSite - Class in it.unive.lisa.analysis.impl.heap.pointbased
A heap identifier that track also the source location where it has been allocated and a field (optional).
AllocationSite(ExternalSet<Type>, String, boolean, CodeLocation) - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSite
Builds an allocation site from its source code location (without field) and specifying if it is weak.
AllocationSite(ExternalSet<Type>, String, CodeLocation) - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSite
Builds a strong allocation site from its source code location (without field).
AllocationSite(ExternalSet<Type>, String, SymbolicExpression, boolean, CodeLocation) - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSite
Builds an allocation site from its source code location and its field and specifying if it is weak.
AllocationSite(ExternalSet<Type>, String, SymbolicExpression, CodeLocation) - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSite
Builds a strong allocation site from its source code location and its field.
AllocationSites - Class in it.unive.lisa.analysis.impl.heap.pointbased
A heap domain tracking sets of AllocationSite.
AllocationSites() - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
Builds an instance of HeapIdentiferSetLattice, corresponding to the top element.
allStatements() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields all the Statements contained in this structure, including the condition and the first follower.
AnalysisException - Exception in it.unive.lisa
A generic Exception that indicates that something has gone wrong during the analysis.
AnalysisException() - Constructor for exception it.unive.lisa.AnalysisException
Builds the exception.
AnalysisException(String) - Constructor for exception it.unive.lisa.AnalysisException
Builds the exception.
AnalysisException(String, Throwable) - Constructor for exception it.unive.lisa.AnalysisException
Builds the exception.
AnalysisException(Throwable) - Constructor for exception it.unive.lisa.AnalysisException
Builds the exception.
AnalysisExecutionException - Exception in it.unive.lisa
A generic RuntimeException that indicates that something has gone wrong during the analysis.
AnalysisExecutionException() - Constructor for exception it.unive.lisa.AnalysisExecutionException
Builds the exception.
AnalysisExecutionException(String) - Constructor for exception it.unive.lisa.AnalysisExecutionException
Builds the exception.
AnalysisExecutionException(String, Throwable) - Constructor for exception it.unive.lisa.AnalysisExecutionException
Builds the exception.
AnalysisExecutionException(Throwable) - Constructor for exception it.unive.lisa.AnalysisExecutionException
Builds the exception.
AnalysisSetupException - Exception in it.unive.lisa
An AnalysisException that happens during the setup of the analysis.
AnalysisSetupException() - Constructor for exception it.unive.lisa.AnalysisSetupException
Builds the exception.
AnalysisSetupException(String) - Constructor for exception it.unive.lisa.AnalysisSetupException
Builds the exception.
AnalysisSetupException(String, Throwable) - Constructor for exception it.unive.lisa.AnalysisSetupException
Builds the exception.
AnalysisSetupException(Throwable) - Constructor for exception it.unive.lisa.AnalysisSetupException
Builds the exception.
AnalysisState<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.analysis
The abstract analysis state at a given program point.
AnalysisState(A, ExpressionSet<SymbolicExpression>) - Constructor for class it.unive.lisa.analysis.AnalysisState
Builds a new state.
AnalysisState(A, SymbolicExpression) - Constructor for class it.unive.lisa.analysis.AnalysisState
Builds a new state.
and(SemanticDomain.Satisfiability) - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Performs a logical and between this satisfiability and the given one.
Annotation - Class in it.unive.lisa.program.annotations
A single annotation.
Annotation(String) - Constructor for class it.unive.lisa.program.annotations.Annotation
Builds an annotation from its name .
Annotation(String, boolean) - Constructor for class it.unive.lisa.program.annotations.Annotation
Builds an annotation from its name.
Annotation(String, List<AnnotationMember>) - Constructor for class it.unive.lisa.program.annotations.Annotation
Builds an annotation from its name and its members that cannot be inherited.
Annotation(String, List<AnnotationMember>, boolean) - Constructor for class it.unive.lisa.program.annotations.Annotation
Builds an annotation from its name and its members.
AnnotationMatcher - Interface in it.unive.lisa.program.annotations.matcher
Interface for an annotation matcher.
AnnotationMember - Class in it.unive.lisa.program.annotations
A member of an annotation.
AnnotationMember(String, AnnotationValue) - Constructor for class it.unive.lisa.program.annotations.AnnotationMember
Builds an annotation member from its identifier and its annotation value.
Annotations - Class in it.unive.lisa.program.annotations
A collection of annotations.
Annotations() - Constructor for class it.unive.lisa.program.annotations.Annotations
Builds an empty list of annotations.
Annotations(Annotation) - Constructor for class it.unive.lisa.program.annotations.Annotations
Builds a collection of annotations containing only the given one.
Annotations(Annotation...) - Constructor for class it.unive.lisa.program.annotations.Annotations
Builds a collection of annotations from an array of annotations.
Annotations(Collection<Annotation>) - Constructor for class it.unive.lisa.program.annotations.Annotations
Builds a collection of annotations from a given collection.
AnnotationValue - Interface in it.unive.lisa.program.annotations.values
An annotation value.
anyMatch(Predicate<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields true iff at least one element contained in this set satisfies the given predicate.
applySubstitution(List<HeapSemanticOperation.HeapReplacement>, ProgramPoint) - Method in interface it.unive.lisa.analysis.value.ValueDomain
Applies a substitution of identifiers that is caused by a modification of the abstraction provided in the HeapDomain of the analysis.
ArrayAnnotationValue - Class in it.unive.lisa.program.annotations.values
An array annotation value.
ArrayAnnotationValue(BasicAnnotationValue[]) - Constructor for class it.unive.lisa.program.annotations.values.ArrayAnnotationValue
Builds an array annotation value.
ArrayType - Interface in it.unive.lisa.type
Array type interface.
asArrayType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a ArrayType, only if Type.isArrayType() yields true.
asBooleanType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a BooleanType, only if Type.isBooleanType() yields true.
asNullType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a NullType, only if Type.isNullType() yields true.
asNumericType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a NumericType, only if Type.isNumericType() yields true.
asPointerType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a PointerType, only if Type.isPointerType() yields true.
assign(I, E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
assign(I, E, ProgramPoint) - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a copy of this domain, where id has been assigned to value.
assign(SymbolicExpression, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.AnalysisState
Yields a copy of this analysis state, where the symbolic expression id has been assigned to value: if id is not an Identifier, then it is rewritten before performing the assignment.
assign(Identifier, E, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.AnalysisState
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
assign(Identifier, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
assign(Identifier, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
assignAux(Identifier, E, Map<Identifier, T>, T, V, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.Environment
Auxiliary function of Environment.assign(Identifier, SymbolicExpression, ProgramPoint) that is invoked after the evaluation of the expression.
assignAux(Identifier, SymbolicExpression, Map<Identifier, T>, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
assignAux(Identifier, ValueExpression, Map<Identifier, T>, T, InferredValue.InferredPair<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
assignAux(Identifier, ValueExpression, Map<Identifier, T>, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
Assignment - Class in it.unive.lisa.program.cfg.statement
A statement assigning the result of an expression to an assignable expression.
Assignment(CFG, CodeLocation, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.Assignment
Builds the assignment, assigning expression to target, happening at the given location in the program.
asStringType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a StringType, only if Type.isStringType() yields true.
assume(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
assume(E, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
assume(E, ProgramPoint) - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a copy of this domain, modified by assuming that the given expression holds.
assume(F, E, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
Yields the environment environment on which the expression expression is assumed to hold by this domain.
assume(HeapEnvironment<AllocationSites>, SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
assume(InferenceSystem<NonInterference>, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
assume(InferenceSystem<T>, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
assume(ValueEnvironment<T>, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.AnalysisState
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
assume(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
assume(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
assumeBinaryExpression(ValueEnvironment<IntegerConstantPropagation>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
assumeBinaryExpression(ValueEnvironment<Interval>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
assumeBinaryExpression(ValueEnvironment<Parity>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
assumeBinaryExpression(ValueEnvironment<Sign>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
assumeBinaryExpression(ValueEnvironment<T>, BinaryOperator, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the environment environment assuming that a binary expression with operator operator, left argument left, and right argument right holds.
assumeSatisfied(InferredValue.InferredPair<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
assumeSatisfied(T) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
assumeSatisfied(T) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
assumeSatisfied(V) - Method in class it.unive.lisa.analysis.nonrelational.Environment
Assumes that an expression, that evaluated to eval, is always satisfied by this environment.
assumeTernaryExpression(ValueEnvironment<T>, TernaryOperator, ValueExpression, ValueExpression, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the environment environment assuming that a ternary expression with operator operator, left argument left, middle argument middle,and right argument right holds.
assumeUnaryExpression(ValueEnvironment<T>, UnaryOperator, ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the environment environment assuming that an unary expression with operator operator and argument expression holds.
asTypeTokenType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a TypeTokenType, only if Type.isTypeTokenType() yields true.
asUnitType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a UnitType, only if Type.isUnitType() yields true.
asUntyped() - Method in interface it.unive.lisa.type.Type
Returns this type casted as an Untyped, only if Type.isUntyped() yields true.
asVoidType() - Method in interface it.unive.lisa.type.Type
Returns this type casted as a VoidType, only if Type.isVoidType() yields true.
AvailableExpressions - Class in it.unive.lisa.analysis.impl.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.impl.dataflow.AvailableExpressions
Builds an empty available expressions object.

B

BaseCallGraph - Class in it.unive.lisa.interprocedural.callgraph
An instance of CallGraph that provides the basic mechanism to resolve UnresolvedCalls.

The graph underlying this call graph is built lazily through each call to resolve: querying for information about the graph before the completion of the analysis might lead to wrong results.
BaseCallGraph() - Constructor for class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
BaseHeapDomain<H extends BaseHeapDomain<H>> - Class in it.unive.lisa.analysis.heap
A base implementation of the HeapDomain interface, handling base cases of BaseHeapDomain.smallStepSemantics(SymbolicExpression, ProgramPoint).
BaseHeapDomain() - Constructor for class it.unive.lisa.analysis.heap.BaseHeapDomain
 
BaseHeapDomain.Rewriter - Class in it.unive.lisa.analysis.heap
BaseInferredValue<T extends BaseInferredValue<T>> - Class in it.unive.lisa.analysis.nonrelational.inference
Base implementation for InferredValues.
BaseInferredValue() - Constructor for class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
BaseLattice<L extends BaseLattice<L>> - Class in it.unive.lisa.analysis
A base implementation of the Lattice interface, handling base cases of the methods exposed by that interface.
BaseLattice() - Constructor for class it.unive.lisa.analysis.BaseLattice
 
BaseNonRelationalValueDomain<T extends BaseNonRelationalValueDomain<T>> - Class in it.unive.lisa.analysis.nonrelational.value
Base implementation for NonRelationalValueDomains.
BaseNonRelationalValueDomain() - Constructor for class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
BasicAnnotationMatcher - Class in it.unive.lisa.program.annotations.matcher
An annotation matcher based on the annotation name.
BasicAnnotationMatcher(Annotation) - Constructor for class it.unive.lisa.program.annotations.matcher.BasicAnnotationMatcher
Builds the matcher from the name of the annotation.
BasicAnnotationMatcher(String) - Constructor for class it.unive.lisa.program.annotations.matcher.BasicAnnotationMatcher
Builds the matcher from the name of the annotation.
BasicAnnotationValue - Interface in it.unive.lisa.program.annotations.values
Abstract class representing a basic annotation value, namely annotation values that can be inside an ArrayAnnotationValue.
beforeExecution(T) - Method in interface it.unive.lisa.checks.Check
Callback invoked only once before the beginning of the inspection of the program.
BinaryExpression - Class in it.unive.lisa.program.cfg.statement
A binary expression.
BinaryExpression - Class in it.unive.lisa.symbolic.value
A bynary expression that applies a BinaryOperator to two SymbolicExpressions.
BinaryExpression(CFG, CodeLocation, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.BinaryExpression
Builds the binary expression, happening at the given location in the program.
BinaryExpression(ExternalSet<Type>, SymbolicExpression, SymbolicExpression, BinaryOperator, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.BinaryExpression
Builds the binary expression.
BinaryNativeCall - Class in it.unive.lisa.program.cfg.statement
A NativeCall with a exactly two arguments.
BinaryNativeCall(CFG, CodeLocation, String, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.BinaryNativeCall
Builds the untyped native call, happening at the given location in the program.
BinaryNativeCall(CFG, CodeLocation, String, Type, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.BinaryNativeCall
Builds the native call, happening at the given location in the program.
BinaryOperator - Enum in it.unive.lisa.symbolic.value
A binary operator that can be applied to a pair of SymbolicExpressions.
binarySemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>, SymbolicExpression, AnalysisState<A, H, V>, SymbolicExpression) - Method in class it.unive.lisa.program.cfg.statement.BinaryNativeCall
Computes the semantics of the call, after the semantics of the parameters have been computed.
BitExternalSet<T> - Class in it.unive.lisa.util.collections.externalSet
An ExternalSet where the indexes of the elements included in the set are stored through bit vectors, enabling better memory efficiency.
bodyStatements() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields all the Statements contained in the body of this structure (thus excluding the condition and the first follower).
bodyStatements() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
bodyStatements() - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
BoolAnnotationValue - Class in it.unive.lisa.program.annotations.values
A Boolean annotation value.
BoolAnnotationValue(boolean) - Constructor for class it.unive.lisa.program.annotations.values.BoolAnnotationValue
Builds a Boolean annotation value.
BooleanType - Interface in it.unive.lisa.type
Boolean type interface.
BoolType - Class in it.unive.lisa.symbolic.types
An internal implementation of the BooleanType interface that can be used by domains that need a concrete instance of that interface.
bottom() - Method in class it.unive.lisa.analysis.AnalysisState
 
bottom() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
bottom() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
bottom() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
bottom() - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
bottom() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
bottom() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
bottom() - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
bottom() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
bottom() - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
bottom() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
bottom() - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
bottom() - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
bottom() - Method in interface it.unive.lisa.analysis.Lattice
Yields the bottom element of this lattice.
bottom() - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
bottom() - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
bottom() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
bottom() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
bottom() - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
bottom() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
 
bottom() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
bottom() - Method in class it.unive.lisa.analysis.StatementStore
 
bottom() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
bottom() - Method in class it.unive.lisa.interprocedural.impl.CFGResults
 
bottom() - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
 
BOTTOM - it.unive.lisa.analysis.SemanticDomain.Satisfiability
Represent the fact that the satisfiability evaluation resulted in an error.
BOTTOM_REPR - Static variable in interface it.unive.lisa.analysis.Lattice
A DomainRepresentation that can be used to represent bottom values.
BOTTOM_STRING - Static variable in interface it.unive.lisa.analysis.Lattice
A string constant that can be used to represent bottom values.
build(G) - Method in class it.unive.lisa.util.datastructures.graph.algorithms.Dominators
Builds the dominators for the given graph.
ByteAnnotationValue - Class in it.unive.lisa.program.annotations.values
A byte annotation value.
ByteAnnotationValue(byte) - Constructor for class it.unive.lisa.program.annotations.values.ByteAnnotationValue
Builds a byte annotation value.

C

Caches - Class in it.unive.lisa.caches
A holder of ExternalSetCaches, to ensure that all ExternalSets built to hold a given element type will share the same unique cache.
Call - Class in it.unive.lisa.program.cfg.statement
A call to another procedure.
Call(CFG, CodeLocation, Type, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.Call
Builds a call happening at the given source location.
callgraph - Variable in class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
The call graph used to resolve method calls.
CallGraph - Interface in it.unive.lisa.interprocedural.callgraph
A callgraph of the program to analyze, that knows how to resolve dynamic targets of UnresolvedCalls.
CallGraphBasedAnalysis<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.interprocedural.impl
An interprocedural analysis based on a call graph.
CallGraphBasedAnalysis() - Constructor for class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
 
CallGraphConstructionException - Exception in it.unive.lisa.interprocedural.callgraph
An exception that occurred while building the callgraph.
CallGraphConstructionException() - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallGraphConstructionException
Builds the exception.
CallGraphConstructionException(String) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallGraphConstructionException
Builds the exception.
CallGraphConstructionException(String, Throwable) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallGraphConstructionException
Builds the exception.
CallGraphConstructionException(Throwable) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallGraphConstructionException
Builds the exception.
CallGraphEdge - Class in it.unive.lisa.interprocedural.callgraph
An edge between two CallGraphNodes in a BaseCallGraph.
CallGraphEdge(CallGraphNode, CallGraphNode) - Constructor for class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
Build the edge.
CallGraphNode - Class in it.unive.lisa.interprocedural.callgraph
A node of a BaseCallGraph, representing a single CodeMember.
CallGraphNode(BaseCallGraph, CodeMember) - Constructor for class it.unive.lisa.interprocedural.callgraph.CallGraphNode
Builds the node.
CallResolutionException - Exception in it.unive.lisa.interprocedural.callgraph
An exception that occurred while resolving an UnresolvedCall.
CallResolutionException() - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallResolutionException
Builds the exception.
CallResolutionException(String) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallResolutionException
Builds the exception.
CallResolutionException(String, Throwable) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallResolutionException
Builds the exception.
CallResolutionException(Throwable) - Constructor for exception it.unive.lisa.interprocedural.callgraph.CallResolutionException
Builds the exception.
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.BinaryNativeCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.Call
Computes the semantics of the call, after the semantics of all parameters have been computed.
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.CFGCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.HybridCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.OpenCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.TernaryNativeCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.UnaryNativeCall
 
callSemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>[], ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.symbolic.types.BoolType
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.symbolic.types.IntType
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.symbolic.types.StringType
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.type.NullType
 
canBeAssignedTo(Type) - Method in interface it.unive.lisa.type.Type
Determines if the type represented by this Type object is either the same as, or is a subtype of, the type represented by other.
canBeAssignedTo(Type) - Method in class it.unive.lisa.type.TypeTokenType
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.type.Untyped
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.type.VoidType
 
canBeSimplified() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
canBeSimplified() - Method in class it.unive.lisa.program.cfg.edge.FalseEdge
 
canBeSimplified() - Method in class it.unive.lisa.program.cfg.edge.SequentialEdge
 
canBeSimplified() - Method in class it.unive.lisa.program.cfg.edge.TrueEdge
 
canBeSimplified() - Method in interface it.unive.lisa.util.datastructures.graph.Edge
Yields true if and only if this edge could be simplified if one of the nodes connected to it is simplified (i.e., removed from the graph).
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
canProcess(SymbolicExpression) - Method in interface it.unive.lisa.analysis.SemanticEvaluator
Yields true if the domain can process expression, false otherwise.
canProcess(SymbolicExpression) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
CartesianProduct<C extends CartesianProduct<C,​T1,​T2,​E,​I>,​T1 extends SemanticDomain<T1,​E,​I> & Lattice<T1>,​T2 extends SemanticDomain<T2,​E,​I> & Lattice<T2>,​E extends SymbolicExpression,​I extends 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.
CFG - Class in it.unive.lisa.program.cfg
A control flow graph, that has Statements as nodes and Edges as edges.

Note that this class does not implement Object.equals(Object) nor Object.hashCode() since all cfgs are unique.
CFG(CFG) - Constructor for class it.unive.lisa.program.cfg.CFG
Clones the given control flow graph.
CFG(CFGDescriptor) - Constructor for class it.unive.lisa.program.cfg.CFG
Builds the control flow graph.
CFG(CFGDescriptor, Collection<Statement>, AdjacencyMatrix<Statement, Edge, CFG>) - Constructor for class it.unive.lisa.program.cfg.CFG
Builds the control flow graph.
CFGCall - Class in it.unive.lisa.program.cfg.statement
A call to one or more of the CFGs under analysis.
CFGCall(CFG, CodeLocation, String, CFG, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.CFGCall
Builds the CFG call, happening at the given location in the program.
CFGCall(CFG, CodeLocation, String, Collection<CFG>, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.CFGCall
Builds the CFG call, happening at the given location in the program.
CFGDescriptor - Class in it.unive.lisa.program.cfg
A descriptor of a CFG, containing the debug informations (source file, line, column) as well as metadata.
CFGDescriptor(CodeLocation, Unit, boolean, String, Parameter...) - Constructor for class it.unive.lisa.program.cfg.CFGDescriptor
Builds the descriptor with Untyped return type.
CFGDescriptor(CodeLocation, Unit, boolean, String, Type, Annotations, Parameter...) - Constructor for class it.unive.lisa.program.cfg.CFGDescriptor
Builds the descriptor.
CFGDescriptor(CodeLocation, Unit, boolean, String, Type, Parameter...) - Constructor for class it.unive.lisa.program.cfg.CFGDescriptor
Builds the descriptor.
CFGDescriptorWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on the descriptor of one of the CFGs under analysis.
CFGDescriptorWarning(CFGDescriptor, String) - Constructor for class it.unive.lisa.checks.warnings.CFGDescriptorWarning
Builds the warning.
cfgMatrix - Variable in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
The matrix of the cfg containing this structure.
CFGResults<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.interprocedural.impl
CFGResults(CFGWithAnalysisResults<A, H, V>) - Constructor for class it.unive.lisa.interprocedural.impl.CFGResults
Builds a new result.
CFGWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on one of the CFGs under analysis.
CFGWarning(CFG, String) - Constructor for class it.unive.lisa.checks.warnings.CFGWarning
Builds the warning.
CFGWithAnalysisResults<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.analysis
A control flow graph, that has Statements as nodes and Edges as edges.
CFGWithAnalysisResults(CFG, AnalysisState<A, H, V>) - Constructor for class it.unive.lisa.analysis.CFGWithAnalysisResults
Builds the control flow graph, storing the given mapping between nodes and fixpoint computation results.
CFGWithAnalysisResults(CFG, AnalysisState<A, H, V>, Map<Statement, AnalysisState<A, H, V>>, Map<Statement, AnalysisState<A, H, V>>) - Constructor for class it.unive.lisa.analysis.CFGWithAnalysisResults
Builds the control flow graph, storing the given mapping between nodes and fixpoint computation results.
CHACallGraph - Class in it.unive.lisa.interprocedural.callgraph.impl
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.impl.CHACallGraph
 
CharAnnotationValue - Class in it.unive.lisa.program.annotations.values
A char annotation value.
CharAnnotationValue(char) - Constructor for class it.unive.lisa.program.annotations.values.CharAnnotationValue
Builds a char annotation value.
Check<T> - Interface in it.unive.lisa.checks
A check that inspects the syntactic structure of the program to report warnings.
ChecksExecutor - Class in it.unive.lisa.checks
Utility class that handles the execution of Checks.
CheckTool - Class in it.unive.lisa.checks.syntactic
An auxiliary tool that can be used by checks during their execution.
CheckTool() - Constructor for class it.unive.lisa.checks.syntactic.CheckTool
Build the tool.
CheckTool(CheckTool) - Constructor for class it.unive.lisa.checks.syntactic.CheckTool
Build the tool, shallow-copying the set of warnings from the given one.
CheckToolWithAnalysisResults<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.checks.semantic
An extension of CheckTool that also contains the results of the fixpoint computation.
CheckToolWithAnalysisResults(CheckTool, Map<CFG, Collection<CFGWithAnalysisResults<A, H, V>>>) - Constructor for class it.unive.lisa.checks.semantic.CheckToolWithAnalysisResults
Builds the tool, copying the given tool and storing the given results.
CheckToolWithAnalysisResults(Map<CFG, Collection<CFGWithAnalysisResults<A, H, V>>>) - Constructor for class it.unive.lisa.checks.semantic.CheckToolWithAnalysisResults
Builds the tool, storing the given results.
clear() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
clear() - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Cleans the cache, removing all elements.
clear() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
CodeElement - Interface in it.unive.lisa.program
Interface for code elements that have to provide information about the location where they appear.
CodeLocation - Interface in it.unive.lisa.program.cfg
A generic interface for representing the location of an element in the source code (e.g., source/line/column, source/offset, ...).
CodeMember - Interface in it.unive.lisa.program.cfg
A program member that has code within it.
collect() - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields a concrete list containing all the elements corresponding to the bits in this set.
collect(T...) - Static method in class it.unive.lisa.util.collections.CollectionUtilities
Stores the given objects into a collection and returns it.
CollectionsDiffBuilder<T> - Class in it.unive.lisa.util.collections
An utility class that can compute the difference between two collections containing the same object types.
CollectionsDiffBuilder(Class<T>, Collection<T>, Collection<T>) - Constructor for class it.unive.lisa.util.collections.CollectionsDiffBuilder
Builds the diff builder.
CollectionUtilities - Class in it.unive.lisa.util.collections
Utility methods for operations on Collections.
COLOR - Static variable in class it.unive.lisa.outputs.DotGraph
The color attribute name.
COLOR_BLACK - Static variable in class it.unive.lisa.outputs.DotGraph
The black color.
COLOR_BLUE - Static variable in class it.unive.lisa.outputs.DotGraph
The blue color.
COLOR_GRAY - Static variable in class it.unive.lisa.outputs.DotGraph
The gray color.
COLOR_RED - Static variable in class it.unive.lisa.outputs.DotGraph
The red color.
COMMON - it.unive.lisa.outputs.compare.JsonReportComparer.REPORT_TYPE
Indicates that the objects being reported are present in both reports.
commonSupertype(Type) - Method in class it.unive.lisa.symbolic.types.BoolType
 
commonSupertype(Type) - Method in class it.unive.lisa.symbolic.types.IntType
 
commonSupertype(Type) - Method in class it.unive.lisa.symbolic.types.StringType
 
commonSupertype(Type) - Method in class it.unive.lisa.type.NullType
 
commonSupertype(Type) - Method in interface it.unive.lisa.type.Type
Yields the most specific common supertype between this Type and the given one.
commonSupertype(Type) - Method in class it.unive.lisa.type.TypeTokenType
 
commonSupertype(Type) - Method in class it.unive.lisa.type.Untyped
 
commonSupertype(Type) - Method in class it.unive.lisa.type.VoidType
 
compare(JsonReport, JsonReport, File, File) - Static method in class it.unive.lisa.outputs.compare.JsonReportComparer
Compares the two reports.
compare(JsonReport, JsonReport, File, File, JsonReportComparer.DiffReporter) - Static method in class it.unive.lisa.outputs.compare.JsonReportComparer
Compares the two reports.
compareTo(DomainRepresentation) - Method in class it.unive.lisa.analysis.representation.DomainRepresentation
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.GlobalWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.UnitWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.Warning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
 
compareTo(JsonReport.JsonWarning) - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
 
compareTo(CodeLocation) - Method in class it.unive.lisa.program.SourceCodeLocation
 
compareTo(CodeLocation) - Method in class it.unive.lisa.program.SyntheticLocation
 
compareTo(Statement) - Method in class it.unive.lisa.program.cfg.statement.Statement
 
compareTo(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
 
COMPARISON_EQ - it.unive.lisa.symbolic.value.BinaryOperator
Given two values, check whether they have same values and same type.
COMPARISON_GE - it.unive.lisa.symbolic.value.BinaryOperator
Given two numeric values n1 and n2 of type NumericType, this operator checks if n1 is in relation through the "greater or equal than" relation with n2.
COMPARISON_GT - it.unive.lisa.symbolic.value.BinaryOperator
Given two numeric values n1 and n2, this operator checks if n1 is in relation through the "greater than" relation with n2.
COMPARISON_LE - it.unive.lisa.symbolic.value.BinaryOperator
Given two numeric values n1 and n2, this operator checks if n1 is in relation through the "less or equal than" relation with n2.
COMPARISON_LT - it.unive.lisa.symbolic.value.BinaryOperator
Given two numeric values n1 and n2, this operator checks if n1 is in relation through the "less than" relation with n2.
COMPARISON_NE - it.unive.lisa.symbolic.value.BinaryOperator
Given two values, check whether they have different values or different type.
CompilationUnit - Class in it.unive.lisa.program
A compilation unit of the program to analyze.
CompilationUnit(CodeLocation, String, boolean) - Constructor for class it.unive.lisa.program.CompilationUnit
Builds a compilation unit, defined at the given program point.
CompilationUnitAnnotationValue - Class in it.unive.lisa.program.annotations.values
A compilation unit annotation value.
CompilationUnitAnnotationValue(String) - Constructor for class it.unive.lisa.program.annotations.values.CompilationUnitAnnotationValue
Builds a compilation unit annotation value.
compute(Comparator<T>) - Method in class it.unive.lisa.util.collections.CollectionsDiffBuilder
Computes the diff between the collections used to create this object.
ConcurrentFIFOWorkingSet<E> - Class in it.unive.lisa.util.collections.workset
A first-in, first-out working set.
ConcurrentLIFOWorkingSet<E> - Class in it.unive.lisa.util.collections.workset
A last-in, first-out working set.
CONDITIONAL_EDGE_STYLE - Static variable in class it.unive.lisa.outputs.DotGraph
The style of conditional edges.
configurableComponents() - Static method in class it.unive.lisa.LiSAFactory
Yields the collection of LiSAFactory.ConfigurableComponents that can be used to customize the analysis.
Constant - Class in it.unive.lisa.symbolic.value
A constant value.
Constant(Type, Object, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Constant
Builds the constant.
ConstantPropagation - Class in it.unive.lisa.analysis.impl.dataflow
An implementation of the constant propagation dataflow analysis, that focuses only on integers.
ConstantPropagation() - Constructor for class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
Builds an empty constant propagation object.
contains(E) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Checks whether an element is contained in this set.
contains(E) - Method in class it.unive.lisa.analysis.lattices.SetLattice
Checks whether an element is contained in this set.
contains(ContextSensitivityToken) - Method in class it.unive.lisa.interprocedural.impl.CFGResults
Yields true if a result exists for the given token.
contains(AnnotationMatcher) - Method in class it.unive.lisa.program.annotations.Annotations
Returns true if matcher matches at least one of this annotations, false otherwise.
contains(CFG) - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
Yields true if a result exists for the given cfg.
contains(Statement) - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields true if the given statement is part of the body of this structure.
contains(Statement) - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
contains(Statement) - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
contains(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
contains(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Determines if this set contains all elements of another if they share the same cache.
contains(Object) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
contains(Object) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
containsAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
containsAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
containsEdge(E) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields true if the given edge is contained in this matrix.
containsNode(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields true if the given node is contained in this matrix.
ContextBasedAnalysis<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.interprocedural.impl
A context sensitive interprocedural analysis.
ContextBasedAnalysis() - Constructor for class it.unive.lisa.interprocedural.impl.ContextBasedAnalysis
Builds the analysis, using SingleScopeTokens.
ContextBasedAnalysis(ContextSensitivityToken) - Constructor for class it.unive.lisa.interprocedural.impl.ContextBasedAnalysis
Builds the analysis.
ContextInsensitiveToken - Class in it.unive.lisa.interprocedural.impl
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.impl
A token for interprocedural analysis that tunes the level of context sensitivity.
ControlFlowExtractor - Class in it.unive.lisa.program.cfg.controlFlow
An extractor of ControlFlowStructures from CFGs.
ControlFlowExtractor(CFG) - Constructor for class it.unive.lisa.program.cfg.controlFlow.ControlFlowExtractor
Builds the extractor.
ControlFlowStructure - Class in it.unive.lisa.program.cfg.controlFlow
A control flow structure of a CFG.
ControlFlowStructure(AdjacencyMatrix<Statement, Edge, CFG>, Statement, Statement) - Constructor for class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Builds the structure.
copy() - Method in class it.unive.lisa.analysis.nonrelational.Environment
Copies this environment.
copy() - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
copy() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
copy() - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
copy() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
copy() - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields a fresh copy of this set, defined over the same cache and containing the same elements.
copy() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
Copying an UniversalExternalSet yields a BitExternalSet representing a snapshot of the actual state of the cache.

Yields a fresh copy of this set, defined over the same cache and containing the same elements.
count() - Method in class it.unive.lisa.logging.Counter
Progresses the count by one.
Counter - Class in it.unive.lisa.logging
A counter that logs to a given logger while progressing during the count.
Counter(Logger, Level, String, String, int, double) - Constructor for class it.unive.lisa.logging.Counter
Builds the counter.
createdFiles() - Method in class it.unive.lisa.util.file.FileManager
Yields the collection of file names that have been created by this manager.
createReference(CFG) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Creates a VariableRef for the variable depicted by this entry, happening in the given CFG at the source file location of its descriptor.

D

DataflowDomain<D extends DataflowDomain<D,​E>,​E extends DataflowElement<D,​E>> - Class in it.unive.lisa.analysis.dataflow
A dataflow domain that collects instances of DataflowElement.
DataflowDomain(E, Set<E>, boolean, boolean) - Constructor for class it.unive.lisa.analysis.dataflow.DataflowDomain
Builds the domain.
DataflowElement<D extends DataflowDomain<D,​E>,​E extends DataflowElement<D,​E>> - Interface in it.unive.lisa.analysis.dataflow
An element of the dataflow domain, that contains a collection of Identifiers in its definition.
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).
DefaultImplementation - Annotation Type in it.unive.lisa
An annotation defining the default implementation for an analysis component.
DefaultParameters - Annotation Type in it.unive.lisa
An annotation defining the default parameters to use when automatically creating an instance of the annotated type.
DefiniteForwardDataflowDomain<E extends DataflowElement<DefiniteForwardDataflowDomain<E>,​E>> - Class in it.unive.lisa.analysis.dataflow
A DataflowDomain for forward and definite dataflow analysis.
DefiniteForwardDataflowDomain(E) - Constructor for class it.unive.lisa.analysis.dataflow.DefiniteForwardDataflowDomain
Builds an empty domain.
diff(IntInterval) - Method in class it.unive.lisa.util.numeric.IntInterval
Performs the interval subtraction between this and other.
difference(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
difference(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields a new set obtained from this by removing the given elements.
distance(Statement) - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields the minimum distance, in terms of number of edges to traverse, between the condition of this structure and the given node.
distance(N, N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the minimum distance, in terms of number of edges to traverse, between the given nodes.
div(IntInterval, boolean, boolean) - Method in class it.unive.lisa.util.numeric.IntInterval
Performs the interval division between this and other.
divide(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the result of this / other.
domain - Variable in class it.unive.lisa.analysis.dataflow.DataflowDomain
The underlying domain.
DomainRepresentation - Class in it.unive.lisa.analysis.representation
A structured representation of the abstract information present in a single instance of SemanticDomain, NonRelationalDomain, DataflowElement or other types of domains.
DomainRepresentation() - Constructor for class it.unive.lisa.analysis.representation.DomainRepresentation
 
Dominators<G extends Graph<G,​N,​E>,​N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>> - Class in it.unive.lisa.util.datastructures.graph.algorithms
An algorithms that evaluates the dominators of each node in a graph.
Dominators() - Constructor for class it.unive.lisa.util.datastructures.graph.algorithms.Dominators
Builds the dominators.
DotCFG - Class in it.unive.lisa.outputs
An DotGraph built from a CFG.
DotGraph<N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​G extends Graph<G,​N,​E>> - Class in it.unive.lisa.outputs
An auxiliary graph built from a Graph that can be dumped in dot format, together with a legend.
DotGraph(String, Graph) - Constructor for class it.unive.lisa.outputs.DotGraph
Builds a graph.
DoubleAnnotationValue - Class in it.unive.lisa.program.annotations.values
A double annotation value.
DoubleAnnotationValue(double) - Constructor for class it.unive.lisa.program.annotations.values.DoubleAnnotationValue
Builds a double annotation value.
dump(Writer) - Method in class it.unive.lisa.outputs.JsonReport
Dumps this report to the given Writer instance, serializing it as a json object.
dump(Writer) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Dumps the content of this graph in the given writer, formatted as a dot file.
dump(Writer, Function<N, String>) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Dumps the content of this graph in the given writer, formatted as a dot file.
dumpDot(Writer) - Method in class it.unive.lisa.outputs.DotGraph
Dumps this graph through the given Writer.
DYNAMIC_TYPES - it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
A strategy where the dynamic (runtime) types of the parameters of the call are evaluated against the signature of a cfg: for each parameter, if at least one of the runtime types of the actual parameter can be assigned to the type of the formal parameter, than UnresolvedCall.ResolutionStrategy.matches(Parameter[], Expression[]) return true.

E

Edge - Class in it.unive.lisa.program.cfg.edge
An edge of a control flow graph, connecting two statements.
Edge<N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​G extends Graph<G,​N,​E>> - Interface in it.unive.lisa.util.datastructures.graph
An edge of a Graph.
Edge(Statement, Statement) - Constructor for class it.unive.lisa.program.cfg.edge.Edge
Builds the edge.
elements - Variable in class it.unive.lisa.analysis.lattices.InverseSetLattice
The set of elements contained in the lattice.
elements - Variable in class it.unive.lisa.analysis.lattices.SetLattice
The set of elements contained in the lattice.
elements() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Yields the set of elements contained in this lattice element.
elements() - Method in class it.unive.lisa.analysis.lattices.SetLattice
Yields the set of elements contained in this lattice element.
empty() - Method in class it.unive.lisa.interprocedural.impl.ContextInsensitiveToken
 
empty() - Method in interface it.unive.lisa.interprocedural.impl.ContextSensitivityToken
A token without any context sensitivity.
empty() - Method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
 
empty() - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
entrypoints - Variable in class it.unive.lisa.util.datastructures.graph.Graph
The nodes of this graph that are entrypoints, that is, that can be executed from other graphs.
EnumAnnotationValue - Class in it.unive.lisa.program.annotations.values
An enum annotation value.
EnumAnnotationValue(String, String) - Constructor for class it.unive.lisa.program.annotations.values.EnumAnnotationValue
Builds an enum annotation value.
Environment<M extends Environment<M,​E,​T,​V>,​E extends SymbolicExpression,​T extends NonRelationalElement<T,​E,​M>,​V extends Lattice<V>> - Class in it.unive.lisa.analysis.nonrelational
An environment for a NonRelationalDomain, that maps Identifiers to instances of such domain.
Environment(T) - Constructor for class it.unive.lisa.analysis.nonrelational.Environment
Builds an empty environment.
Environment(T, Map<Identifier, T>) - Constructor for class it.unive.lisa.analysis.nonrelational.Environment
Builds an environment containing the given mapping.
equality(N, T, T) - Method in interface it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint.FixpointImplementation
Given a node and two states, yields whether or not the most recent one has to be considered equal to the older one in terms of fixpoint iterations.
equals(C, C, BiPredicate<T, T>) - Static method in class it.unive.lisa.util.collections.CollectionUtilities
Tests if two collections contain the same elements, using a custom equality test to determine if two elements are to be considered equals.
equals(Object) - Method in class it.unive.lisa.analysis.AnalysisState
 
equals(Object) - Method in class it.unive.lisa.analysis.BaseLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
equals(Object) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
equals(Object) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
equals(Object) - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
equals(Object) - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
equals(Object) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
equals(Object) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
equals(Object) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
equals(Object) - Method in class it.unive.lisa.analysis.representation.DomainRepresentation
 
equals(Object) - Method in class it.unive.lisa.analysis.representation.MapRepresentation
 
equals(Object) - Method in class it.unive.lisa.analysis.representation.PairRepresentation
 
equals(Object) - Method in class it.unive.lisa.analysis.representation.SetRepresentation
 
equals(Object) - Method in class it.unive.lisa.analysis.representation.StringRepresentation
 
equals(Object) - Method in class it.unive.lisa.analysis.ScopeToken
 
equals(Object) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
equals(Object) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.GlobalWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.UnitWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.Warning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
 
equals(Object) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
equals(Object) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
 
equals(Object) - Method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
 
equals(Object) - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
equals(Object) - Method in class it.unive.lisa.LiSAConfiguration
 
equals(Object) - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
equals(Object) - Method in class it.unive.lisa.outputs.DotGraph
 
equals(Object) - Method in class it.unive.lisa.outputs.JsonReport
 
equals(Object) - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
 
equals(Object) - Method in class it.unive.lisa.program.annotations.Annotation
 
equals(Object) - Method in class it.unive.lisa.program.annotations.AnnotationMember
 
equals(Object) - Method in class it.unive.lisa.program.annotations.Annotations
 
equals(Object) - Method in class it.unive.lisa.program.annotations.matcher.BasicAnnotationMatcher
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.ArrayAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.BoolAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.ByteAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.CharAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.CompilationUnitAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.DoubleAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.EnumAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.FloatAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.IntAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.LongAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.ShortAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.annotations.values.StringAnnotationValue
 
equals(Object) - Method in class it.unive.lisa.program.cfg.CFGDescriptor
 
equals(Object) - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
 
equals(Object) - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
equals(Object) - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
equals(Object) - Method in class it.unive.lisa.program.cfg.edge.Edge
 
equals(Object) - Method in class it.unive.lisa.program.cfg.Parameter
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.Call
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.CFGCall
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.Expression
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.HybridCall
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.Literal
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.NativeCall
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.OpenCall
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.Ret
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.Statement
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.UnaryStatement
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
 
equals(Object) - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
equals(Object) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
 
equals(Object) - Method in class it.unive.lisa.program.Global
 
equals(Object) - Method in class it.unive.lisa.program.SourceCodeLocation
 
equals(Object) - Method in class it.unive.lisa.symbolic.heap.AccessChild
 
equals(Object) - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
equals(Object) - Method in class it.unive.lisa.symbolic.heap.HeapDereference
 
equals(Object) - Method in class it.unive.lisa.symbolic.heap.HeapReference
 
equals(Object) - Method in class it.unive.lisa.symbolic.SymbolicExpression
 
equals(Object) - Method in class it.unive.lisa.symbolic.types.BoolType
 
equals(Object) - Method in class it.unive.lisa.symbolic.types.IntType
 
equals(Object) - Method in class it.unive.lisa.symbolic.types.StringType
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.Constant
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.Identifier
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.NullConstant
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.PushAny
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.Skip
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
equals(Object) - Method in class it.unive.lisa.type.NullType
 
equals(Object) - Method in class it.unive.lisa.type.TypeTokenType
 
equals(Object) - Method in class it.unive.lisa.type.Untyped
 
equals(Object) - Method in class it.unive.lisa.type.VoidType
 
equals(Object) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.IterableArray
 
equals(Object) - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
equals(Object) - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
equals(Object) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
 
equals(Object) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix.NodeEdges
 
equals(Object) - Method in class it.unive.lisa.util.numeric.IntInterval
 
equals(Object) - Method in class it.unive.lisa.util.numeric.MathNumber
 
eval(E, F, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalDomain
Evaluates a SymbolicExpression, assuming that the values of program variables are the ones stored in environment.
eval(E, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.Environment
Yields the evaluation of the given expression, happening at the given program point.
eval(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
eval(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
eval(ValueExpression, InferenceSystem<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
eval(ValueExpression, InferenceSystem<T>, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.inference.InferredValue
Evaluates a ValueExpression, assuming that the values of program variables are the ones stored in environment.
eval(ValueExpression, ValueEnvironment<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
eval(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
eval(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
evalBinaryExpression(BinaryOperator, NonInterference, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalBinaryExpression(BinaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
evalBinaryExpression(BinaryOperator, Interval, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
evalBinaryExpression(BinaryOperator, Parity, Parity, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
evalBinaryExpression(BinaryOperator, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
evalBinaryExpression(BinaryOperator, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalBinaryExpression(BinaryOperator, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a BinaryExpression applying operator to two expressions whose abstract value are left and right, respectively.
evalBinaryExpression(BinaryOperator, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a BinaryExpression applying operator to two expressions whose abstract value are left and right, respectively.
evalIdentifier(Identifier, InferenceSystem<NonInterference>, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalIdentifier(Identifier, InferenceSystem<InferredTypes>, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalIdentifier(Identifier, InferenceSystem<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of an identifier in a given environment.
evalIdentifier(Identifier, ValueEnvironment<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of an identifier in a given environment.
evalNonNullConstant(Constant, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalNonNullConstant(Constant, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
evalNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of the given non-null constant.
evalNonNullConstant(Constant, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of the given non-null constant.
evalNullConstant(NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalNullConstant(InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
evalNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of the null constant NullConstant.
evalNullConstant(T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of the null constant NullConstant.
evalPushAny(PushAny, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalPushAny(PushAny, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a push-any expression.
evalPushAny(PushAny, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a push-any expression.
evalTernaryExpression(TernaryOperator, NonInterference, NonInterference, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalTernaryExpression(TernaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
evalTernaryExpression(TernaryOperator, InferredTypes, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalTernaryExpression(TernaryOperator, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a TernaryExpression applying operator to two expressions whose abstract value are left, middle and right, respectively.
evalTernaryExpression(TernaryOperator, T, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a TernaryExpression applying operator to two expressions whose abstract value are left, middle and right, respectively.
evalTypeCast(BinaryExpression, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalTypeCast(BinaryExpression, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a type cast expression.
evalTypeCast(BinaryExpression, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a type cast expression.
evalTypeConv(BinaryExpression, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalTypeConv(BinaryExpression, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a type conversion expression.
evalTypeConv(BinaryExpression, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a type conversion expression.
evalUnaryExpression(UnaryOperator, NonInterference, NonInterference, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
evalUnaryExpression(UnaryOperator, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
evalUnaryExpression(UnaryOperator, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
evalUnaryExpression(UnaryOperator, Parity, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
evalUnaryExpression(UnaryOperator, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
evalUnaryExpression(UnaryOperator, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
evalUnaryExpression(UnaryOperator, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the evaluation of a UnaryExpression applying operator to an expression whose abstract value is arg.
evalUnaryExpression(UnaryOperator, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the evaluation of a UnaryExpression applying operator to an expression whose abstract value is arg.
execAction(Logger, String, TimerLogger.LoggableAction) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given action, while logging the time need for it to complete.
execAction(Logger, Level, TimeFormat, String, TimerLogger.LoggableAction) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given action, while logging the time need for it to complete.
execAction(Logger, Level, String, TimerLogger.LoggableAction) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given action, while logging the time need for it to complete.
execSupplier(Logger, String, TimerLogger.LoggableSupplier<T>) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given supplier, while logging the time need for it to complete.
execSupplier(Logger, Level, TimeFormat, String, TimerLogger.LoggableSupplier<T>) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given supplier, while logging the time need for it to complete.
execSupplier(Logger, Level, String, TimerLogger.LoggableSupplier<T>) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given supplier, while logging the time need for it to complete.
executeAll(T, Program, Iterable<C>) - Static method in class it.unive.lisa.checks.ChecksExecutor
Executes all the given checks on the given inputs cfgs.
EXIT_NODE_EXTRA_ATTR - Static variable in class it.unive.lisa.outputs.DotGraph
The name of the extra attribute identifying exit nodes.
EXIT_NODE_EXTRA_VALUE - Static variable in class it.unive.lisa.outputs.DotGraph
The value of the extra attribute identifying exit nodes.
Expression - Class in it.unive.lisa.program.cfg.statement
An expression that is part of a statement of the program.
Expression(CFG, CodeLocation) - Constructor for class it.unive.lisa.program.cfg.statement.Expression
Builds an untyped expression happening at the given source location, that is its type is Untyped.INSTANCE.
Expression(CFG, CodeLocation, Type) - Constructor for class it.unive.lisa.program.cfg.statement.Expression
Builds a typed expression happening at the given source location.
ExpressionSet<T extends SymbolicExpression> - Class in it.unive.lisa.analysis.lattices
A set lattice containing a set of symbolic expressions.
ExpressionSet() - Constructor for class it.unive.lisa.analysis.lattices.ExpressionSet
Builds the empty set lattice element.
ExpressionSet(Set<T>) - Constructor for class it.unive.lisa.analysis.lattices.ExpressionSet
Builds a set lattice element.
ExpressionSet(T) - Constructor for class it.unive.lisa.analysis.lattices.ExpressionSet
Builds a singleton set lattice element.
ExpressionVisitor<T> - Interface in it.unive.lisa.symbolic
ExpressionWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on an expression.
ExpressionWarning(Expression, String) - Constructor for class it.unive.lisa.checks.warnings.ExpressionWarning
Builds the warning.
ExternalSet<T> - Interface in it.unive.lisa.util.collections.externalSet
A set of elements that are stored externally from this set.
ExternalSetCache<T> - Class in it.unive.lisa.util.collections.externalSet
A cache for creating ExternalSets of the elements contained in this cache.
ExternalSetCache() - Constructor for class it.unive.lisa.util.collections.externalSet.ExternalSetCache
 
extract() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowExtractor
Runs the algorithms for extracting ControlFlowStructures.

F

FalseEdge - Class in it.unive.lisa.program.cfg.edge
An edge connecting two statements, that is traversed when the condition expressed in the source state does not hold.
FalseEdge(Statement, Statement) - Constructor for class it.unive.lisa.program.cfg.edge.FalseEdge
Builds the edge.
FieldSensitivePointBasedHeap - Class in it.unive.lisa.analysis.impl.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.impl.heap.pointbased.FieldSensitivePointBasedHeap
Builds a new instance of field-sensitive point-based heap.
FIFOWorkingSet<E> - Class in it.unive.lisa.util.collections.workset
A first-in, first-out working set.
fileDiff(String, String, String) - Method in interface it.unive.lisa.outputs.compare.JsonReportComparer.DiffReporter
Callback invoked by a JsonReportComparer whenever files from different reports but with matching names have different content.
FileManager - Class in it.unive.lisa.util.file
A file manager that provides standard functionalities for communicating with the file system.
FileManager(String) - Constructor for class it.unive.lisa.util.file.FileManager
Builds a new manager that will produce files in the given workdir.
FileManager.WriteAction - Interface in it.unive.lisa.util.file
A functional interface for a write operation that can throw IOExceptions.
FILES - it.unive.lisa.outputs.compare.JsonReportComparer.REPORTED_COMPONENT
Indicates that the difference was found in the collection of generated files.
filter(Predicate<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields a new external set containing only the elements of this set that satisfy the given predicate.
first() - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields the first element inside this set.
FIRST_DYNAMIC_THEN_STATIC - it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
A strategy where the first parameter is tested using UnresolvedCall.ResolutionStrategy.DYNAMIC_TYPES, while the rest is tested using UnresolvedCall.ResolutionStrategy.STATIC_TYPES.
fixpoint(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, WorkingSet<Statement>, int) - Method in class it.unive.lisa.program.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(AnalysisState<A, H, V>, Class<? extends WorkingSet<Statement>>, int) - Method in class it.unive.lisa.interprocedural.impl.ContextBasedAnalysis
 
fixpoint(AnalysisState<A, H, V>, Class<? extends WorkingSet<Statement>>, int) - Method in class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
 
fixpoint(AnalysisState<A, H, V>, Class<? extends WorkingSet<Statement>>, int) - Method in interface it.unive.lisa.interprocedural.InterproceduralAnalysis
Computes a fixpoint over the whole control flow graph, producing a CFGWithAnalysisResults for each CFG contained in this analysis.
fixpoint(AnalysisState<A, H, V>, Map<Statement, AnalysisState<A, H, V>>, InterproceduralAnalysis<A, H, V>, WorkingSet<Statement>, int) - Method in class it.unive.lisa.program.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Collection<Statement>, AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, WorkingSet<Statement>, int) - Method in class it.unive.lisa.program.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Map<N, T>, WorkingSet<N>, Fixpoint.FixpointImplementation<N, E, T>) - Method in class it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint
Runs the fixpoint.
Fixpoint<G extends Graph<G,​N,​E>,​N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​T> - Class in it.unive.lisa.util.datastructures.graph.algorithms
A fixpoint algorithm for a Graph, parametric to the Fixpoint.FixpointImplementation that one wants to use to compute the results.
Fixpoint(Graph<G, N, E>) - Constructor for class it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint
Builds a fixpoint for the given Graph.
Fixpoint.FixpointImplementation<N,​E,​T> - Interface in it.unive.lisa.util.datastructures.graph.algorithms
Concrete implementation of the general methods used by a fixpoint algorithm to perform.
FixpointException - Exception in it.unive.lisa.util.datastructures.graph.algorithms
An exception raised during the fixpoint computation.
FixpointException() - Constructor for exception it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
Builds the exception.
FixpointException(String) - Constructor for exception it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
Builds the exception.
FixpointException(String, Throwable) - Constructor for exception it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
Builds the exception.
FixpointException(Throwable) - Constructor for exception it.unive.lisa.util.datastructures.graph.algorithms.FixpointException
Builds the exception.
FixpointResults<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.interprocedural.impl
FixpointResults(CFGResults<A, H, V>) - Constructor for class it.unive.lisa.interprocedural.impl.FixpointResults
Builds a new result.
FloatAnnotationValue - Class in it.unive.lisa.program.annotations.values
A float annotation value.
FloatAnnotationValue(float) - Constructor for class it.unive.lisa.program.annotations.values.FloatAnnotationValue
Builds a float annotation value.
followersOf(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the collection of the nodes that are followers of the given one, that is, all nodes such that there exist an edge in this matrix going from the given node to such node.
followersOf(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the collection of the nodes that are followers of the given one, that is, all nodes such that there exist an edge in this control flow graph going from the given node to such node.
forceDeleteFolder(String) - Static method in class it.unive.lisa.util.file.FileManager
Deletes a folder with all of its contents if it exists.
forget(CFG) - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
Forgets all results about the given CFG.
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.AnalysisState
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
forgetIdentifier(Identifier) - Method in interface it.unive.lisa.analysis.SemanticDomain
Forgets an Identifier.
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
forgetIdentifiers(Iterable<Identifier>) - Method in interface it.unive.lisa.analysis.SemanticDomain
Forgets all the given Identifiers.
format(long) - Method in enum it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos into a string with time units.
from(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.FieldSensitivePointBasedHeap
 
from(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
Builds a point-based heap from a reference one.
fromBoolean(boolean) - Static method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Transforms a boolean value to a SemanticDomain.Satisfiability instance.
fromCFG(CFG, String, Function<Statement, String>) - Static method in class it.unive.lisa.outputs.DotCFG
Builds a DotCFG from a CFG.
function - Variable in class it.unive.lisa.analysis.lattices.FunctionalLattice
The function implemented by this lattice.
FunctionalLattice<F extends FunctionalLattice<F,​K,​V>,​K,​V extends Lattice<V>> - Class in it.unive.lisa.analysis.lattices
A generic functional abstract domain that performs the functional lifting of the lattice on the elements of the co-domain.
FunctionalLattice(V) - Constructor for class it.unive.lisa.analysis.lattices.FunctionalLattice
Builds the lattice.
FunctionalLattice(V, Map<K, V>) - Constructor for class it.unive.lisa.analysis.lattices.FunctionalLattice
Builds the lattice by cloning the given function.
FunctionalLattice.FunctionalLift<V extends Lattice<V>> - Interface in it.unive.lisa.analysis.lattices
Interface for the lift of lattice elements.
FunctionalLattice.KeyFunctionalLift<K> - Interface in it.unive.lisa.analysis.lattices
Interface for the left of key sets.
functionalLift(F, FunctionalLattice.KeyFunctionalLift<K>, FunctionalLattice.FunctionalLift<V>) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the functional lift between this and other.

G

gen(Identifier, ValueExpression, ProgramPoint, D) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
The dataflow gen operation, yielding the dataflow elements that are generated by the assignment of the given expression to the given id.
gen(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
gen(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
gen(Identifier, ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
gen(ValueExpression, ProgramPoint, D) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
The dataflow gen operation, yielding the dataflow elements that are generated by evaluating the given non-assigning expression.
gen(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
gen(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
gen(ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
get(int) - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Yields the pos-th element of this cache.
getAbstractResultOf(CFGCall, AnalysisState<A, H, V>, ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.interprocedural.impl.ContextBasedAnalysis
 
getAbstractResultOf(CFGCall, AnalysisState<A, H, V>, ExpressionSet<SymbolicExpression>[]) - Method in class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
 
getAbstractResultOf(CFGCall, AnalysisState<A, H, V>, ExpressionSet<SymbolicExpression>[]) - Method in interface it.unive.lisa.interprocedural.InterproceduralAnalysis
Resolves the given call to all of its possible runtime targets, and then computes an analysis state that abstracts the execution of the possible targets considering that they were given parameters as actual parameters.
getAdjacencyMatrix() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the adjacency matrix backing this graph.
getAll() - Method in class it.unive.lisa.interprocedural.impl.CFGResults
Yields all the results stored in this object, for any possible ContextSensitivityToken used.
getAllCFGs() - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all the CFGs defined in this unit.
getAllCFGs() - Method in class it.unive.lisa.program.Program
Yields the collection of all the CFGs defined in this unit.
getAllCFGs() - Method in class it.unive.lisa.program.Unit
Yields the collection of all the CFGs defined in this unit.
getAllCodeMembers() - Method in class it.unive.lisa.program.Unit
Yields the collection of all the CodeMembers defined in this unit.
getAllConstructs() - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all the NativeCFGs defined in this unit.
getAllConstructs() - Method in class it.unive.lisa.program.Program
Yields the collection of all the NativeCFGs defined in this unit.
getAllConstructs() - Method in class it.unive.lisa.program.Unit
Yields the collection of all the NativeCFGs defined in this unit.
getAllExitpoints() - Method in class it.unive.lisa.program.cfg.CFG
Yields the statements of this control flow graph that are normal exitpoints, that is, that normally ends the execution of this cfg, returning the control to the caller, or throwing an error (i.e., all such statements on which either Statement.stopsExecution() or Statement.throwsError() hold).
getAllGlobals() - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all the Globals defined in this unit.
getAllGlobals() - Method in class it.unive.lisa.program.Program
Yields the collection of all the Globals defined in this unit.
getAllGlobals() - Method in class it.unive.lisa.program.Unit
Yields the collection of all the Globals defined in this unit.
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.impl.ContextBasedAnalysis
 
getAnalysisResultsOf(CFG) - Method in class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
 
getAnalysisResultsOf(CFG) - Method in interface it.unive.lisa.interprocedural.InterproceduralAnalysis
Yields the results of the given analysis, identified by its class, on the given CFG.
getAnalysisStateAfter(Statement) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields the computed result at a given statement (exit state).
getAnalysisStateBefore(Statement) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields the computed result before a given statement (entry state).
getAnnotationMembers() - Method in class it.unive.lisa.program.annotations.Annotation
Yields the annotation members of this annotation.
getAnnotationName() - Method in class it.unive.lisa.program.annotations.Annotation
Yields the annotation name of this annotation.
getAnnotations() - Method in class it.unive.lisa.program.annotations.Annotations
Yields the list of annotations.
getAnnotations() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the annotations of this descriptor.
getAnnotations() - Method in class it.unive.lisa.program.cfg.Parameter
Yields the annotations of this parameter.
getAnnotations() - Method in class it.unive.lisa.program.cfg.statement.VariableRef
Yields the annotations of this variable, retrieved from the variable table of the cfg this variable belongs to.
getAnnotations() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the annotations of this variable.
getAnnotations() - Method in class it.unive.lisa.program.CompilationUnit
Yields the annotations of this compilation unit.
getAnnotations() - Method in class it.unive.lisa.program.Global
Yields the annotations of this global element.
getAnnotations() - Method in class it.unive.lisa.symbolic.value.Identifier
Yields the annotations of this identifier.
getAnnotations(AnnotationMatcher) - Method in class it.unive.lisa.program.annotations.Annotations
Yields the annotations that are matched by the matcher m.
getArgs() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the array containing the arguments of the CFG associated with this descriptor.
getBaseType() - Method in interface it.unive.lisa.type.ArrayType
Yields the base type of this array type.
getBody() - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
Yields the Statements contained in the body of this loop.
getCache() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
getCache() - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields the cache that this set is connected to.
getCache() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
getCallees(CodeMember) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
getCallees(CodeMember) - Method in interface it.unive.lisa.interprocedural.callgraph.CallGraph
Yields all the CodeMembers that are called by the given one.
getCallers(CodeMember) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
getCallers(CodeMember) - Method in interface it.unive.lisa.interprocedural.callgraph.CallGraph
Yields all the CodeMembers that call the given one.
getCallGraph() - Method in class it.unive.lisa.LiSAConfiguration
Yields the CallGraph for the analysis.
getCFG() - Method in class it.unive.lisa.checks.warnings.CFGWarning
Yields the cfg where this warning was reported on.
getCFG() - Method in interface it.unive.lisa.program.cfg.ProgramPoint
Yields the CFG that this program point belongs to.
getCFG() - Method in class it.unive.lisa.program.cfg.statement.Statement
 
getCFG(String) - Method in class it.unive.lisa.program.Unit
Yields the CFG defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getCFGs() - Method in class it.unive.lisa.program.Unit
Yields the collection of CFGs defined in this unit.
getCFGsByName(String) - Method in class it.unive.lisa.program.Unit
Yields the collection of all CFGs defined in this unit that have the given name.
getChild() - Method in class it.unive.lisa.symbolic.heap.AccessChild
Yields the expression representing the child.
getCodeLocation() - Method in interface it.unive.lisa.program.cfg.CodeLocation
Yields the string code location representation.
getCodeLocation() - Method in class it.unive.lisa.program.SourceCodeLocation
 
getCodeLocation() - Method in class it.unive.lisa.program.SyntheticLocation
 
getCodeLocation() - Method in class it.unive.lisa.symbolic.SymbolicExpression
Yields the code location of the statement that has generated this symbolic expression.
getCodeMember() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
Yields the CodeMember represented by this node.
getCodeMember(String) - Method in class it.unive.lisa.program.Unit
Yields the CodeMember defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getCodeMembers() - Method in class it.unive.lisa.program.Unit
Yields the collection of CodeMembers defined in this unit.
getCodeMembersByName(String) - Method in class it.unive.lisa.program.Unit
Yields the collection of all CodeMembers defined in this unit that have the given name.
getCol() - Method in class it.unive.lisa.program.SourceCodeLocation
Yields the column where this code element happens in the source file.
getCommons() - Method in class it.unive.lisa.util.collections.CollectionsDiffBuilder
Yields a collection containing all the pair of elements (deemed to be equal) that are contained in both collections used to create this builder.
getCompleteStructure() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields an AdjacencyMatrix containing the full structure (nodes and edges) represented by this conditional structure.
getComponent() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
Yields the component represented by this LiSAFactory.ConfigurableComponent.
getComputedExpressions() - Method in class it.unive.lisa.analysis.AnalysisState
Yields the last computed expression.
getCondition() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields the condition of this structure.
getConstruct(String) - Method in class it.unive.lisa.program.Unit
Yields the NativeCFG defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getConstructName() - Method in class it.unive.lisa.program.cfg.statement.NativeCall
Yields the CFG that is targeted by this CFG call.
getConstructs() - Method in class it.unive.lisa.program.Unit
Yields the collection of constructs (NativeCFGs) defined in this unit.
getConstructsByName(String) - Method in class it.unive.lisa.program.Unit
Yields the collection of all NativeCFGs defined in this unit that have the given name.
getContainer() - Method in class it.unive.lisa.symbolic.heap.AccessChild
Yields the expression representing the parent.
getControlFlowStructures() - Method in class it.unive.lisa.program.cfg.CFG
Yields the collection of ControlFlowStructures contained in this cfg.

Note that if no control flow structures have been provided by frontends, and no attempt at extracting them has been made yet, invoking this method will cause a ControlFlowExtractor to try to extract them.
getCurrentCount() - Method in class it.unive.lisa.logging.Counter
Yields the current count of this counter.
getDataflowElements() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
Yields the DataflowElements contained in this domain instance.
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().
getDescriptor() - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
Yields the cfg where this warning was reported on.
getDescriptor() - Method in class it.unive.lisa.program.cfg.CFG
Yields the name of this control flow graph.
getDescriptor() - Method in interface it.unive.lisa.program.cfg.CodeMember
Yields the CFGDescriptor containing the signature of this code member.
getDescriptor() - Method in class it.unive.lisa.program.cfg.NativeCFG
 
getDestination() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
getDestination() - Method in class it.unive.lisa.program.cfg.edge.Edge
 
getDestination() - Method in interface it.unive.lisa.util.datastructures.graph.Edge
Yields the node where this edge ends.
getDominators() - Method in class it.unive.lisa.util.datastructures.graph.algorithms.Dominators
Yelds the last computed dominators through Dominators.build(Graph).
getDynamicType() - Method in class it.unive.lisa.program.cfg.statement.Expression
Yields the dynamic type of this expression, that is, the most specific common supertype of all its runtime types (available through Expression.getRuntimeTypes().
getDynamicType() - Method in class it.unive.lisa.symbolic.SymbolicExpression
Yields the dynamic type of this expression, that is, the most specific common supertype of all its runtime types (available through SymbolicExpression.getTypes().
getEdgeConnecting(N, N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the edge connecting the two given nodes, if any.
getEdgeConnecting(N, N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the edge connecting the two given nodes, if any.
getEdges() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the set of edges of this matrix.
getEdges() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the set of edges of this graph.
getEdgesCount() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the total number of edges of this graph.
getEntries() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the entry nodes of this matrix, that is, the nodes that have no predecessors.
getEntrypoints() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the nodes of this graph that are entrypoints, that is, that can be executed from other graphs.
getEntryPoints() - Method in class it.unive.lisa.program.Program
Yields the collection of CFGs that are entry points in this program.
getEntryState() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields the entry state.
getExecutionState() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
Yields the execution state (also called program counter), that might change when evaluating an expression.
getExits() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the exit nodes of this matrix, that is, the nodes that have no followers.
getExitState() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields the exit state.
getExpression() - Method in class it.unive.lisa.checks.warnings.ExpressionWarning
Yields the expression where this warning was reported on.
getExpression() - Method in class it.unive.lisa.program.cfg.statement.UnaryStatement
Yields the expression that is the argument of this unary statement.
getExpression() - Method in class it.unive.lisa.symbolic.heap.HeapDereference
Yields the expression to be dereferred.
getExpression() - Method in class it.unive.lisa.symbolic.heap.HeapReference
Yields the referred expression.
getExpression() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
Yields the inner expression, that is transformed by this expression by applying UnaryExpression.getOperator().
getFalseBranch() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
Yields the Statements contained in the false branch of this if-then-else.
getFiles() - Method in class it.unive.lisa.outputs.JsonReport
Yields the collection of file names contained into this report.
getFirstFollower() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Yields the first follower of this structure, that is, the first statement after the conditional structure exits.
getFixpointWorkingSet() - Method in class it.unive.lisa.LiSAConfiguration
Yields the concrete class of WorkingSet to be used in fixpoints.
getFullName() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the full name of the CFG associated with this descriptor.
getFullSignature() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the full signature of this cfg, that is, CFGDescriptor.getSignature() preceded by the cfg's return type.
getFullSignatureWithParNames() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the full signature of this cfg including parameters names, that is, CFGDescriptor.getSignatureWithParNames() preceded by the cfg's return type.
getGenericProgramPoint() - Method in class it.unive.lisa.program.cfg.CFG
Yields a generic ProgramPoint happening inside this cfg.
getGlobal() - Method in class it.unive.lisa.checks.warnings.GlobalWarning
Yields the global where this warning was reported on.
getGlobal(String) - Method in class it.unive.lisa.program.Unit
Yields the Global defined in this unit having the given name (Global.getName()), if any.
getGlobals() - Method in class it.unive.lisa.program.Unit
Yields the collection of Globals defined in this unit.
getGraph() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
Yields the parent BaseCallGraph containing this node.
getGuards(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of all the ControlFlowStructures, regardless of their type, containing the given program point.
getHeapState() - Method in interface it.unive.lisa.analysis.AbstractState
Yields the instance of HeapDomain that contains the information on heap structures contained in this abstract state.
getHeapState() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
getHigh() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields the upper bound of this interval.
getId() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields a string meant to identify this specific result, based on how it has been produced.
getId() - Method in class it.unive.lisa.program.annotations.AnnotationMember
Yields the identifier of this annotation member.
getIdsToForget() - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Yields the collection of identifiers that must be removed after the application of this replacement, that is, the identifiers that are in HeapSemanticOperation.HeapReplacement.getSources() but not in HeapSemanticOperation.HeapReplacement.getTargets().
getIfThenElseGuards(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of all the IfThenElse containing the given program point.
getIndex() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the index of this variable.
getInferred() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
Yields the instance of InferredValue representing the inferred value.
getInferredValue() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
getIngoing() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix.NodeEdges
Yields the ingoing edges.
getIngoingEdges(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the ingoing edges to the given node.
getIngoingEdges(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the ingoing edges to the given node.
getInnerType() - Method in interface it.unive.lisa.type.ArrayType
Yields the type of the inner dimension of this array type.
getInstance(Class<T>, Object...) - Static method in class it.unive.lisa.LiSAFactory
Creates an instance of the given component.
getInstanceCFG(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the instance CFG defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getInstanceCFGs(boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of instance CFGs defined in this unit.
getInstanceCFGsByName(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all instance CFGs defined in this unit that have the given name.
getInstanceCodeMember(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the instance CodeMember defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getInstanceCodeMembers(boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of instance CodeMembers defined in this unit.
getInstanceCodeMembersByName(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all instance CodeMembers defined in this unit that have the given name.
getInstanceConstruct(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the instance NativeCFG defined in this unit having the given signature (CFGDescriptor.getSignature()), if any.
getInstanceConstructs(boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of instance constructs (NativeCFGs) defined in this unit.
getInstanceConstructsByName(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of all instance NativeCFGs defined in this unit that have the given name.
getInstanceGlobal(String, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the instance Global defined in this unit having the given name (Global.getName()), if any.
getInstanceGlobals(boolean) - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of instance Globals defined in this unit.
getInstances() - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of CompilationUnits that are instances of this one, including itself.
getInterproceduralAnalysis() - Method in class it.unive.lisa.LiSAConfiguration
Yields the InterproceduralAnalysis for the analysis.
getInvolvedIdentifiers() - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
Yields all the Identifiers that are involved in the definition of this element.
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
getInvolvedIdentifiers() - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
getKeys() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the set of keys currently in this lattice.
getLeft() - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
Yields the left hand-side of the expression.
getLeft() - Method in class it.unive.lisa.symbolic.value.BinaryExpression
Yields the left-hand side operand of this expression.
getLeft() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
Yields the left-hand side operand of this expression.
getLine() - Method in class it.unive.lisa.program.SourceCodeLocation
Yields the line number where this code element happens in the source file.
getLocation() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the location where this warning was reported.
getLocation() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
 
getLocation() - Method in class it.unive.lisa.program.cfg.Parameter
 
getLocation() - Method in class it.unive.lisa.program.cfg.statement.Statement
 
getLocation() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
 
getLocation() - Method in interface it.unive.lisa.program.CodeElement
Yields the location where this code element appears in the source file.
getLocation() - Method in class it.unive.lisa.program.CompilationUnit
 
getLocation() - Method in class it.unive.lisa.program.Global
 
getLocationName() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSite
Yields the code location string representation where this allocation site has been allocated.
getLocationWithBrackets() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the location where this warning was reported, surrounded by square brackets.
getLoopGuards(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of all Loops containing the given program point.
getLow() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields the lower bound of this interval.
getMap() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the map associated with this functional lattice element.
getMatchingCodeMember(CFGDescriptor) - Method in class it.unive.lisa.program.Unit
Finds all the code members whose signature matches the one of the given CFGDescriptor, according to CFGDescriptor.matchesSignature(CFGDescriptor).
getMatchingInstanceCodeMembers(CFGDescriptor, boolean) - Method in class it.unive.lisa.program.CompilationUnit
Finds all the instance code members whose signature matches the one of the given CFGDescriptor, according to CFGDescriptor.matchesSignature(CFGDescriptor).
getMessage() - Method in class it.unive.lisa.checks.warnings.Warning
Yields the message of this warning.
getMessage() - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
Yields the message of this warning.
getMetaVariable() - Method in class it.unive.lisa.program.cfg.statement.CFGCall
 
getMetaVariable() - Method in interface it.unive.lisa.program.cfg.statement.MetaVariableCreator
Yields the meta variable that is introduced during the evaluation of the semantics of this object to store information about the value produced by this object.
getMetaVariable() - Method in class it.unive.lisa.program.cfg.statement.OpenCall
 
getMetaVariable() - Method in class it.unive.lisa.program.cfg.statement.Return
 
getMetaVariables() - Method in class it.unive.lisa.program.cfg.statement.Expression
Yields the meta variables that are generated by the evaluation of this expression.
getMiddle() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
Yields the middle operand of this expression.
getMostRecentGuard(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of the most recent ControlFlowStructure, regardless of its type, containing the given program point.
getMostRecentIfThenElseGuard(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of the most recent IfThenElse containing the given program point.
getMostRecentLoopGuard(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields the guard of the most recent Loop containing the given program point.
getName() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the name of the CFG associated with this descriptor.
getName() - Method in class it.unive.lisa.program.cfg.Parameter
Yields the name of this parameter.
getName() - Method in class it.unive.lisa.program.cfg.statement.VariableRef
Yields the name of this variable.
getName() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the name of this variable.
getName() - Method in class it.unive.lisa.program.Global
Yields the name of this global.
getName() - Method in class it.unive.lisa.program.Unit
Yields the name of the unit.
getName() - Method in class it.unive.lisa.symbolic.value.Identifier
Yields the name of this identifier.
getNativeTargets() - Method in class it.unive.lisa.program.cfg.statement.HybridCall
Yields the CFGs that are targeted by this CFG call.
getNodes() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the collection of nodes of this matrix.
getNodes() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the set of nodes of this graph.
getNodesCount() - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the total number of nodes of this graph.
getNormalExitpoints() - Method in class it.unive.lisa.program.cfg.CFG
Yields the statements of this control flow graph that are normal exitpoints, that is, that normally ends the execution of this cfg, returning the control to the caller without throwing an error (i.e., all such statements on which Statement.stopsExecution() holds but Statement.throwsError() does not).
getOffset() - Method in class it.unive.lisa.program.cfg.statement.Statement
Yields the offset of this statement relative to its containing cfg.
getOnlyFirst() - Method in class it.unive.lisa.util.collections.CollectionsDiffBuilder
Yields a collection containing all the elements that are contained only in the first collection used to create this builder.
getOnlySecond() - Method in class it.unive.lisa.util.collections.CollectionsDiffBuilder
Yields a collection containing all the elements that are contained only in the second collection used to create this builder.
getOperator() - Method in class it.unive.lisa.symbolic.value.BinaryExpression
Yields the operator that is applied to BinaryExpression.getLeft() and BinaryExpression.getRight().
getOperator() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
getOperator() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
Yields the operator that is applied to UnaryExpression.getExpression().
getOutgoing() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix.NodeEdges
Yields the outgoing edges.
getOutgoingEdges(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the outgoing edges from the given node.
getOutgoingEdges(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the outgoing edges from the given node.
getParameters() - Method in class it.unive.lisa.program.cfg.statement.Call
Yields the parameters of this call.
getParentStatement() - Method in class it.unive.lisa.program.cfg.statement.Expression
Yields the Statement that contains this expression, if any.
getPossibleTypesOfReceiver(Expression) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
Returns all the possible types of the given expression, that is a receiver of a method call.
getPossibleTypesOfReceiver(Expression) - Method in class it.unive.lisa.interprocedural.callgraph.impl.CHACallGraph
 
getPossibleTypesOfReceiver(Expression) - Method in class it.unive.lisa.interprocedural.callgraph.impl.RTACallGraph
 
getQualifiedName() - Method in class it.unive.lisa.program.cfg.statement.CFGCall
Yields the qualified name of the static target of this call.
getQualifiedName() - Method in class it.unive.lisa.program.cfg.statement.HybridCall
Yields the qualified name of the static target of this call.
getReferencedLocation() - Method in class it.unive.lisa.symbolic.value.MemoryPointer
Yields the heap location pointed by this pointer.
getRegisteredTypes() - Method in class it.unive.lisa.program.Program
Yields the collection of Types that have been registered in this program.
getResultOf(CFG) - Method in class it.unive.lisa.checks.semantic.CheckToolWithAnalysisResults
Yields the analysis results stored in this tool for the given CFG.
getReturnType() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the return type of the CFG associated with this descriptor.
getRight() - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
Yields the right hand-side of the expression.
getRight() - Method in class it.unive.lisa.symbolic.value.BinaryExpression
Yields the right-hand side operand of this expression.
getRight() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
Yields the right-hand side operand of this expression.
getRootStatement() - Method in class it.unive.lisa.program.cfg.statement.Expression
Yields the outer-most Statement containing this expression, that is used as a node in the cfg.
getRuntimeTypes() - Method in class it.unive.lisa.analysis.types.InferredTypes
Yields the ExternalSet containing the types held by this instance.
getRuntimeTypes() - Method in class it.unive.lisa.program.cfg.statement.Expression
The concrete types that this expression can have at runtime.
getScope() - Method in class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
Returns the scope of the identifier.
getScopeEnd() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the statement where this variable is last visible.
getScoper() - Method in class it.unive.lisa.analysis.ScopeToken
Yields the element that this scope refers to.
getScopeStart() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the statement where this variable is first visible.
getSeen() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
Yields the elements visited (and this no longer able to be added to this working set) by this object.
getSemanticChecks() - Method in class it.unive.lisa.LiSAConfiguration
Yields the collection of SemanticChecks that are to be executed during the analysis.
getSignature() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the signature of this cfg, composed by its CFGDescriptor.getFullName() followed by its parameters types.
getSignatureWithParNames() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the signature of this cfg, composed by its CFGDescriptor.getFullName() followed by its parameters (types and names).
getSingleton() - Static method in class it.unive.lisa.interprocedural.impl.ContextInsensitiveToken
Return an instance of the class.
getSingleton() - Static method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
Return an empty token.
getSingleton() - Static method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
Return an empty token.
getSource() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
getSource() - Method in class it.unive.lisa.program.cfg.edge.Edge
 
getSource() - Method in interface it.unive.lisa.util.datastructures.graph.Edge
Yields the node where this edge originates.
getSourceFile() - Method in class it.unive.lisa.program.SourceCodeLocation
Yields the source file name where this code element happens.
getSources() - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Yields the set of identifiers that this replacement originates from, that is, the ones whose value will be assigned to the targets.
getState() - Method in class it.unive.lisa.analysis.AnalysisState
Yields the AbstractState embedded into this analysis state, containing abstract values for program variables and memory locations.
getState() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
Yields the instance of InferredValue representing the execution state.
getState() - Method in class it.unive.lisa.LiSAConfiguration
Yields the AbstractState for the analysis.
getState(K) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the state associated to the given key.
getStatement() - Method in class it.unive.lisa.checks.warnings.StatementWarning
Yields the statement where this warning was reported on.
getStaticType() - Method in class it.unive.lisa.program.cfg.Parameter
Yields the static type of this parameter.
getStaticType() - Method in class it.unive.lisa.program.cfg.statement.Expression
Yields the static type of this expression.
getStaticType() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Yields the static type of this variable.
getStaticType() - Method in class it.unive.lisa.program.Global
Yields the static type of this global.
getStrategy() - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
Yields the UnresolvedCall.ResolutionStrategy of the parameters of this call.
getStringRepresentation() - Method in enum it.unive.lisa.symbolic.value.BinaryOperator
 
getStringRepresentation() - Method in interface it.unive.lisa.symbolic.value.Operator
Yields the string representation of the operator.
getStringRepresentation() - Method in enum it.unive.lisa.symbolic.value.TernaryOperator
 
getStringRepresentation() - Method in enum it.unive.lisa.symbolic.value.UnaryOperator
 
getSubstitution() - Method in interface it.unive.lisa.analysis.heap.HeapSemanticOperation
Yields the substitution, in the form of a list of HeapSemanticOperation.HeapReplacements that must be processed in their order of appearance, that the creation of this heap domain caused.
getSubstitution() - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
getSubstitution() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
getSubstitution() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
getSubstitution() - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
getSubstitution() - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
getSuperUnits() - Method in class it.unive.lisa.program.CompilationUnit
Yields the collection of CompilationUnits that this unit directly inherits from.
getSyntacticChecks() - Method in class it.unive.lisa.LiSAConfiguration
Yields the collection of SyntacticChecks that are to be executed during the analysis.
getTag() - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.ExpressionWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.GlobalWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.UnitWarning
 
getTag() - Method in class it.unive.lisa.checks.warnings.Warning
Yields the tag of this warning.
getTaggedMessage() - Method in class it.unive.lisa.checks.warnings.Warning
Yields the message of this warning, preceeded by the tag under square brackets.
getTargetName() - Method in class it.unive.lisa.program.cfg.statement.OpenCall
Yields the name of the target of this open call.
getTargetName() - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
Yields the name of the target of this call.
getTargets() - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Yields the set of identifiers that are targeted by this replacement, that is, the ones that will be assigned.
getTargets() - Method in class it.unive.lisa.program.cfg.statement.CFGCall
Yields the CFGs that are targeted by this CFG call.
getTargets() - Method in class it.unive.lisa.program.cfg.statement.HybridCall
Yields the CFGs that are targeted by this CFG call.
getTrueBranch() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
Yields the Statements contained in the true branch of this if-then-else.
getTypes() - Method in class it.unive.lisa.symbolic.SymbolicExpression
Yields the runtime types of this expression.
getTypes() - Method in class it.unive.lisa.type.TypeTokenType
Yields the Types represented by this type token.
getUnit() - Method in class it.unive.lisa.checks.warnings.GlobalWarning
Yields the unit containing the global where this warning was reported on.
getUnit() - Method in class it.unive.lisa.checks.warnings.UnitWarning
Yields the unit where this warning was reported on.
getUnit() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the Unit containing the cfg associated to this descriptor.
getUnit() - Method in interface it.unive.lisa.type.UnitType
Yields the CompilationUnit that induces this type.
getUnit(String) - Method in class it.unive.lisa.program.Program
Yields the CompilationUnit defined in this unit having the given name (Unit.getName()), if any.
getUnits() - Method in class it.unive.lisa.program.Program
Yields the collection of CompilationUnits defined in this program.
getValue() - Method in class it.unive.lisa.program.annotations.AnnotationMember
Yields the annotation value of this annotation member.
getValue() - Method in class it.unive.lisa.program.cfg.statement.Literal
Yields the value of this literal.
getValue() - Method in class it.unive.lisa.symbolic.value.Constant
Yields the constant value.
getValues() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the values of this functional lattice.
getValueState() - Method in interface it.unive.lisa.analysis.AbstractState
Yields the instance of ValueDomain that contains the information on values of program variables and concretized memory locations.
getValueState() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
getVariable() - Method in class it.unive.lisa.program.cfg.statement.VariableRef
Yields a Variable representing the referenced variable.
getVariables() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the list of VariableTableEntrys that have been added to this descriptor.
getWarnings() - Method in class it.unive.lisa.checks.syntactic.CheckTool
Returns an unmodifiable view of the warnings that have been generated up to now using this tool.
getWarnings() - Method in class it.unive.lisa.LiSA
Yields an unmodifiable view of the warnings that have been generated during the analysis.
getWarnings() - Method in class it.unive.lisa.outputs.JsonReport
Yields the collection of JsonReport.JsonWarnings contained into this report.
getWideningThreshold() - Method in class it.unive.lisa.LiSAConfiguration
Yields the number of fixpoint iteration on a given node after which calls to Lattice.lub(Lattice) gets replaced with Lattice.widening(Lattice).
getWorkdir() - Method in class it.unive.lisa.LiSAConfiguration
Yields the working directory where LiSA will dump all of its outputs.
glb(SemanticDomain.Satisfiability) - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Performs the greatest lower bound operation between this satisfiability and the given one.
glb(M) - Method in class it.unive.lisa.analysis.nonrelational.Environment
Performs the greatest lower bound between this environment and other.
glb(S) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Performs the greatest lower bound between this inverse set lattice element and the given one.
glb(S) - Method in class it.unive.lisa.analysis.lattices.SetLattice
Performs the greatest lower bound between this set lattice element and the given one.
glb(T) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
glb(T) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
Performs the greatest lower bound operation between this domain element and other.
glb(T) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
glbAux(Interval) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
glbAux(T) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Performs the greatest lower bound operation between this inferred value and other, assuming that base cases have already been handled.
glbAux(T) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Performs the greatest lower bound operation between this domain element and other, assuming that base cases have already been handled.
glbAux(T, Map<Identifier, T>, HeapEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
glbAux(T, Map<Identifier, T>, InferenceSystem<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
glbAux(T, Map<Identifier, T>, ValueEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
glbAux(T, Map<Identifier, T>, M) - Method in class it.unive.lisa.analysis.nonrelational.Environment
Auxiliary glb operation, invoked after the result has been computed to create the concrete instance of environment.
glbKeys(Set<K>, Set<K>) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the intersection of the keys between k1 and k2.
Global - Class in it.unive.lisa.program
A global variable, scoped by its container.
Global(CodeLocation, String) - Constructor for class it.unive.lisa.program.Global
Builds an untyped global variable, identified by its name.
Global(CodeLocation, String, Type) - Constructor for class it.unive.lisa.program.Global
Builds the global reference, identified by its name and its type, happening at the given location in the program.
Global(CodeLocation, String, Type, Annotations) - Constructor for class it.unive.lisa.program.Global
Builds the global reference, identified by its name and its type, happening at the given location in the program.
GlobalWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on one of the Globals under analysis.
GlobalWarning(Unit, Global, String) - Constructor for class it.unive.lisa.checks.warnings.GlobalWarning
Builds the warning.
Graph<G extends Graph<G,​N,​E>,​N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>> - Class in it.unive.lisa.util.datastructures.graph
A generic graph, backed by an AdjacencyMatrix.

Note that this class does not define Object.equals(Object) nor Object.hashCode(), since we leave the decision to be unique instances to implementers.
Graph() - Constructor for class it.unive.lisa.util.datastructures.graph.Graph
Builds the graph.
Graph(G) - Constructor for class it.unive.lisa.util.datastructures.graph.Graph
Clones the given graph.
Graph(Collection<N>, AdjacencyMatrix<N, E, G>) - Constructor for class it.unive.lisa.util.datastructures.graph.Graph
Builds the graph.
GraphVisitor<G extends Graph<G,​N,​E>,​N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​V> - Interface in it.unive.lisa.util.datastructures.graph
A visitor of a Graph.

H

hashCode() - Method in class it.unive.lisa.analysis.AnalysisState
 
hashCode() - Method in class it.unive.lisa.analysis.BaseLattice
 
hashCode() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
hashCode() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
hashCode() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
hashCode() - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
 
hashCode() - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
hashCode() - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
hashCode() - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
hashCode() - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
hashCode() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
hashCode() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
hashCode() - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
hashCode() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
hashCode() - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
hashCode() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
hashCode() - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
hashCode() - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
hashCode() - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
hashCode() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
hashCode() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
hashCode() - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
hashCode() - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
hashCode() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
hashCode() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
hashCode() - Method in class it.unive.lisa.analysis.representation.DomainRepresentation
 
hashCode() - Method in class it.unive.lisa.analysis.representation.MapRepresentation
 
hashCode() - Method in class it.unive.lisa.analysis.representation.PairRepresentation
 
hashCode() - Method in class it.unive.lisa.analysis.representation.SetRepresentation
 
hashCode() - Method in class it.unive.lisa.analysis.representation.StringRepresentation
 
hashCode() - Method in class it.unive.lisa.analysis.ScopeToken
 
hashCode() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
hashCode() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
hashCode() - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.GlobalWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.UnitWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.Warning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
 
hashCode() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
hashCode() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
 
hashCode() - Method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
 
hashCode() - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
hashCode() - Method in class it.unive.lisa.LiSAConfiguration
 
hashCode() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
hashCode() - Method in class it.unive.lisa.outputs.DotGraph
 
hashCode() - Method in class it.unive.lisa.outputs.JsonReport
 
hashCode() - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
 
hashCode() - Method in class it.unive.lisa.program.annotations.Annotation
 
hashCode() - Method in class it.unive.lisa.program.annotations.AnnotationMember
 
hashCode() - Method in class it.unive.lisa.program.annotations.Annotations
 
hashCode() - Method in class it.unive.lisa.program.annotations.matcher.BasicAnnotationMatcher
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.ArrayAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.BoolAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.ByteAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.CharAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.CompilationUnitAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.DoubleAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.EnumAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.FloatAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.IntAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.LongAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.ShortAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.annotations.values.StringAnnotationValue
 
hashCode() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
 
hashCode() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
 
hashCode() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
hashCode() - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
hashCode() - Method in class it.unive.lisa.program.cfg.edge.Edge
 
hashCode() - Method in class it.unive.lisa.program.cfg.Parameter
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.Call
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.CFGCall
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.Expression
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.HybridCall
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.Literal
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.NativeCall
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.OpenCall
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.Ret
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.Statement
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.UnaryStatement
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
 
hashCode() - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
hashCode() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
 
hashCode() - Method in class it.unive.lisa.program.Global
 
hashCode() - Method in class it.unive.lisa.program.SourceCodeLocation
 
hashCode() - Method in class it.unive.lisa.symbolic.heap.AccessChild
 
hashCode() - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
hashCode() - Method in class it.unive.lisa.symbolic.heap.HeapDereference
 
hashCode() - Method in class it.unive.lisa.symbolic.heap.HeapReference
 
hashCode() - Method in class it.unive.lisa.symbolic.SymbolicExpression
 
hashCode() - Method in class it.unive.lisa.symbolic.types.BoolType
 
hashCode() - Method in class it.unive.lisa.symbolic.types.IntType
 
hashCode() - Method in class it.unive.lisa.symbolic.types.StringType
 
hashCode() - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
hashCode() - Method in class it.unive.lisa.symbolic.value.Constant
 
hashCode() - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
hashCode() - Method in class it.unive.lisa.symbolic.value.Identifier
 
hashCode() - Method in class it.unive.lisa.symbolic.value.NullConstant
 
hashCode() - Method in class it.unive.lisa.symbolic.value.PushAny
 
hashCode() - Method in class it.unive.lisa.symbolic.value.Skip
 
hashCode() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
hashCode() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
hashCode() - Method in class it.unive.lisa.type.NullType
 
hashCode() - Method in class it.unive.lisa.type.TypeTokenType
 
hashCode() - Method in class it.unive.lisa.type.Untyped
 
hashCode() - Method in class it.unive.lisa.type.VoidType
 
hashCode() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
hashCode() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
hashCode() - Method in class it.unive.lisa.util.collections.IterableArray
 
hashCode() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
hashCode() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
hashCode() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
hashCode() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
hashCode() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
hashCode() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
 
hashCode() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix.NodeEdges
 
hashCode() - Method in class it.unive.lisa.util.numeric.IntInterval
 
hashCode() - Method in class it.unive.lisa.util.numeric.MathNumber
 
HeapAllocation - Class in it.unive.lisa.symbolic.heap
An allocation of a memory location.
HeapAllocation(ExternalSet<Type>, CodeLocation) - Constructor for class it.unive.lisa.symbolic.heap.HeapAllocation
Builds the heap allocation.
HeapDereference - Class in it.unive.lisa.symbolic.heap
A heap dereference expression.
HeapDereference(ExternalSet<Type>, SymbolicExpression, CodeLocation) - Constructor for class it.unive.lisa.symbolic.heap.HeapDereference
Builds the heap dereference.
HeapDomain<D extends HeapDomain<D>> - Interface in it.unive.lisa.analysis.heap
A semantic domain that can evaluate the semantic of statements that operate on heap locations, and not on concrete values.
heapEnv - Variable in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
An heap environment tracking which allocation sites are associated to each identifier.
HeapEnvironment<T extends NonRelationalHeapDomain<T>> - Class in it.unive.lisa.analysis.nonrelational.heap
An environment for a NonRelationalHeapDomain, that maps Identifiers to instances of such domain.
HeapEnvironment(T) - Constructor for class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
Builds an empty environment.
HeapEnvironment(T, Map<Identifier, T>) - Constructor for class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
Builds an empty environment from a given mapping.
HeapExpression - Class in it.unive.lisa.symbolic.heap
A symbolic expression that identifies a location in the program's heap.
HeapExpression(ExternalSet<Type>, CodeLocation) - Constructor for class it.unive.lisa.symbolic.heap.HeapExpression
Builds the heap expression.
HeapLocation - Class in it.unive.lisa.symbolic.value
An identifier of a synthetic program variable that represents a resolved memory location.
HeapLocation(ExternalSet<Type>, String, boolean, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.HeapLocation
Builds the heap location.
HeapReference - Class in it.unive.lisa.symbolic.heap
A reference to a memory location, identified by its name.
HeapReference(ExternalSet<Type>, SymbolicExpression, CodeLocation) - Constructor for class it.unive.lisa.symbolic.heap.HeapReference
Builds the heap reference.
HeapReplacement() - Constructor for class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
Builds the replacement.
HeapSemanticOperation - Interface in it.unive.lisa.analysis.heap
A semantic operation on the heap state of the program, that provides a substitution of the available identifiers.
HeapSemanticOperation.HeapReplacement - Class in it.unive.lisa.analysis.heap
A replacement between Identifiers caused by a change in the heap abstraction.
highIsPlusInfinity() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if the upper bound of this interval is set to plus infinity.
HOURS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as hours.
HybridCall - Class in it.unive.lisa.program.cfg.statement
A call to one or more CFGs or NativeCFGs under analysis.
HybridCall(CFG, CodeLocation, String, Collection<CFG>, Collection<NativeCFG>, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.HybridCall
Builds the CFG call, happening at the given location in the program.

I

Identifier - Class in it.unive.lisa.symbolic.value
An identifier of a program variable, representing either a program variable (as an instance of Variable), or a resolved memory location (as an instance of HeapLocation).
Identifier(ExternalSet<Type>, String, boolean, Annotations, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Identifier
Builds the identifier.
Identifier(ExternalSet<Type>, String, boolean, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Identifier
Builds the identifier.
IfThenElse - Class in it.unive.lisa.program.cfg.controlFlow
A ControlFlowStructure representing a if-then-else.
IfThenElse(AdjacencyMatrix<Statement, Edge, CFG>, Statement, Statement, Collection<Statement>, Collection<Statement>) - Constructor for class it.unive.lisa.program.cfg.controlFlow.IfThenElse
Builds the if-then-else.
includes(IntInterval) - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this interval includes the given one.
indexOf(T) - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Yields the index where the given element is stored in this cache.
indexOfOrAdd(T) - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Yields the index where the given element is stored in this cache.
InferenceSystem<T extends InferredValue<T>> - Class in it.unive.lisa.analysis.nonrelational.inference
An inference system that model standard derivation systems (e.g., types systems, small step semantics, big step semantics, ...).
InferenceSystem(InferenceSystem<T>, T) - Constructor for class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
Builds an inference system identical to the given one, except for the execution state that will be set to the given one.
InferenceSystem(T) - Constructor for class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
Builds an empty inference system.
InferredPair(T, T, T) - Constructor for class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
Builds the pair.
InferredPairRepresentation(InferredValue.InferredPair<?>) - Constructor for class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPairRepresentation
Builds a new representation.
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.
InferredValue<T extends InferredValue<T>> - Interface in it.unive.lisa.analysis.nonrelational.inference
A NonRelationalElement that can be inferred by InferenceSystems.
InferredValue.InferredPair<T extends InferredValue<T>> - Class in it.unive.lisa.analysis.nonrelational.inference
A pair of instances of InferredValue, representing the result of an evaluation in the form of <inferred value, new execution state>.
InferredValue.InferredPairRepresentation - Class in it.unive.lisa.analysis.nonrelational.inference
INFINITY - Static variable in class it.unive.lisa.util.numeric.IntInterval
The interval [-Inf, +Inf].
inheritRuntimeTypesFrom(Expression) - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
Updates this call's runtime types to match the ones of the given expression.
init(Program) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
init(Program) - Method in interface it.unive.lisa.interprocedural.callgraph.CallGraph
Initializes the call graph of the given program.
init(Program, CallGraph) - Method in class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
 
init(Program, CallGraph) - Method in class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
 
init(Program, CallGraph) - Method in interface it.unive.lisa.interprocedural.InterproceduralAnalysis
Initializes the interprocedural analysis of the given program.
INSTANCE - Static variable in class it.unive.lisa.program.SyntheticLocation
Singleton instance of the synthetic location.
INSTANCE - Static variable in class it.unive.lisa.symbolic.types.BoolType
The singleton instance of this class.
INSTANCE - Static variable in class it.unive.lisa.symbolic.types.IntType
The singleton instance of this class.
INSTANCE - Static variable in class it.unive.lisa.symbolic.types.StringType
The singleton instance of this class.
INSTANCE - Static variable in class it.unive.lisa.type.NullType
Unique instance of NullType.
INSTANCE - Static variable in class it.unive.lisa.type.Untyped
Unique instance of Untyped type.
INSTANCE - Static variable in class it.unive.lisa.type.VoidType
Unique instance of VoidType.
IntAnnotationValue - Class in it.unive.lisa.program.annotations.values
An integer annotation value.
IntAnnotationValue(int) - Constructor for class it.unive.lisa.program.annotations.values.IntAnnotationValue
Builds an integer annotation value.
IntegerConstantPropagation - Class in it.unive.lisa.analysis.impl.numeric
The 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.impl.numeric.IntegerConstantPropagation
Builds the top abstract value.
InterproceduralAnalysis<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Interface in it.unive.lisa.interprocedural
The definition of interprocedural analyses.
InterproceduralAnalysisException - Exception in it.unive.lisa.interprocedural
An exception that occurred while performing an interprocedural analysis.
InterproceduralAnalysisException() - Constructor for exception it.unive.lisa.interprocedural.InterproceduralAnalysisException
Builds the exception.
InterproceduralAnalysisException(String) - Constructor for exception it.unive.lisa.interprocedural.InterproceduralAnalysisException
Builds the exception.
InterproceduralAnalysisException(String, Throwable) - Constructor for exception it.unive.lisa.interprocedural.InterproceduralAnalysisException
Builds the exception.
InterproceduralAnalysisException(Throwable) - Constructor for exception it.unive.lisa.interprocedural.InterproceduralAnalysisException
Builds the exception.
intersection(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
intersection(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields the intersection of this set and another.
intersects(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
intersects(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Determines if this set has at least an element in common with another if they share the same cache.
intersects(IntInterval) - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this interval intersects with the given one.
Interval - Class in it.unive.lisa.analysis.impl.numeric
The interval abstract domain, approximating integer values as the minimum integer interval containing them.
Interval() - Constructor for class it.unive.lisa.analysis.impl.numeric.Interval
Builds the top interval.
IntInterval - Class in it.unive.lisa.util.numeric
An interval with integer bounds.
IntInterval(int, int) - Constructor for class it.unive.lisa.util.numeric.IntInterval
Builds a new interval.
IntInterval(MathNumber, MathNumber) - Constructor for class it.unive.lisa.util.numeric.IntInterval
Builds a new interval.
IntInterval(Integer, Integer) - Constructor for class it.unive.lisa.util.numeric.IntInterval
Builds a new interval.
IntType - Class in it.unive.lisa.symbolic.types
An internal implementation of the NumericType interface that can be used by domains that need a concrete instance for integer values.
InverseSetLattice<S extends InverseSetLattice<S,​E>,​E> - Class in it.unive.lisa.analysis.lattices
A generic inverse set lattice containing a set of elements.
InverseSetLattice(Set<E>) - Constructor for class it.unive.lisa.analysis.lattices.InverseSetLattice
Builds the lattice.
is(int) - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this is a singleton interval containing only n.
is(int) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is number represents exactly the given integer.
is16Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is16Bits() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type follows a 16-bits format representation.
is32Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is32Bits() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type follows a 32-bits format representation.
is64Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is64Bits() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type follows a 64-bits format representation.
is8Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is8Bits() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type follows a 8-bits format representation.
isArrayType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of ArrayType.
isBooleanType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of BooleanType.
isBottom() - Method in class it.unive.lisa.analysis.AnalysisState
 
isBottom() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
isBottom() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
isBottom() - Method in class it.unive.lisa.analysis.combination.ValueCartesianProduct
 
isBottom() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
isBottom() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
isBottom() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
isBottom() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
isBottom() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
isBottom() - Method in interface it.unive.lisa.analysis.Lattice
Yields true if and only if this object represents the bottom of the lattice.
isBottom() - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
isBottom() - Method in class it.unive.lisa.analysis.nonrelational.Environment
Yields true if and only if this object represents the bottom of the lattice.
isBottom() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
isBottom() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
isBottom() - Method in class it.unive.lisa.analysis.StatementStore
 
isBottom() - Method in class it.unive.lisa.interprocedural.impl.CFGResults
 
isBottom() - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
 
isDumpAnalysis() - Method in class it.unive.lisa.LiSAConfiguration
Yields whether or not the results of analysis, if run, should be dumped in the form of dot files representing results on single CFGs.
isDumpCFGs() - Method in class it.unive.lisa.LiSAConfiguration
Yields whether or not the input program should be dumped in the form of dot files representing single CFGs.
isDumpTypeInference() - Method in class it.unive.lisa.LiSAConfiguration
Yields whether or not the results of type inference, if run, should be dumped in the form of dot files representing results on single CFGs.
isEmpty() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Returns true if this set contains no elements.
isEmpty() - Method in class it.unive.lisa.analysis.lattices.SetLattice
Returns true if this set contains no elements.
isEmpty() - Method in class it.unive.lisa.program.annotations.Annotations
Yields true if and only if the set of annotations represented by this instance is empty.
isEmpty() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
isEmpty() - Method in interface it.unive.lisa.util.collections.workset.WorkingSet
Yields true if and only if this working set is empty.
isEqualTo(G) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Checks if this graph is effectively equal to the given one, that is, if they have the same structure while potentially being different instances.
isFinite() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this is interval is finite, that is, if neither bound is set to infinity.
isFinite() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is finite (i.e.
isGuarded(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields true if and only if the given program point is inside the body of a ControlFlowStructure, regardless of its type.

Note that if no control flow structures have been provided by frontends, and no attempt at extracting them has been made yet, invoking this method will cause a ControlFlowExtractor to try to extract them.
isHighConfidentiality() - Method in class it.unive.lisa.analysis.impl.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.impl.nonInterference.NonInterference
Yields true if and only if this instance represents a high value for the integrity non interference analysis.
isInferTypes() - Method in class it.unive.lisa.LiSAConfiguration
Yields whether or not type inference should be run.
isInfinite() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this is interval is not finite, that is, if at least one bound is set to infinity.
isInfinite() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is infinite (i.e.
isInfinity() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this is the interval representing infinity, that is, [-Inf, +Inf].
isInherited() - Method in class it.unive.lisa.program.annotations.Annotation
Yields true if this annotation can be inherited, false otherwise.
isInsideIfThenElse(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields true if and only if the given program point is inside one of the branches of an IfThenElse.

Note that if no control flow structures have been provided by frontends, and no attempt at extracting them has been made yet, invoking this method will cause a ControlFlowExtractor to try to extract them.
isInsideLoop(ProgramPoint) - Method in class it.unive.lisa.program.cfg.CFG
Yields true if and only if the given program point is inside the body of a Loop.

Note that if no control flow structures have been provided by frontends, and no attempt at extracting them has been made yet, invoking this method will cause a ControlFlowExtractor to try to extract them.
isInstance() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields true if and only if the cfg associated to this descriptor is an instance cfg.
isInstanceCall() - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
Yields whether or not this is a call to an instance method of a unit (that can be overridden) or not.
isInstanceOf(CompilationUnit) - Method in class it.unive.lisa.program.CompilationUnit
Yields true if and only if this unit is an instance of the given one.
isIntegral() - Method in class it.unive.lisa.symbolic.types.IntType
 
isIntegral() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type is integral, representing one of the numbers in the mathematical set Z.
isJsonOutput() - Method in class it.unive.lisa.LiSAConfiguration
Yields whether or not the results a json report file should be dumped at the end of the analysis.
isLogging() - Method in class it.unive.lisa.logging.Counter
Yields true if this counter is currently logging updates.
isLowConfidentiality() - Method in class it.unive.lisa.analysis.impl.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.impl.nonInterference.NonInterference
Yields true if and only if this instance represents a low value for the integrity non interference analysis.
isMinusInfinity() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is minus infinity.
isNaN() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is not a number, that is, obtained from an operation that does not produce a result (e.g.
isNegative() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is negative.
isNullType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of NullType.
isNumericType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of NumericType.
isOverridable() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields true if and only if the cfg associated to this descriptor is can be overridden by cfgs in Units that inherit for the cfg's unit.
isPlusInfinity() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is plus infinity.
isPointerType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of PointerType.
isPositiveOrZero() - Method in class it.unive.lisa.util.numeric.MathNumber
Yields true if this number is positive or equal to zero.
isSealed() - Method in class it.unive.lisa.program.CompilationUnit
Yields whether or not this unit is sealed, meaning that it cannot be used as super unit of other compilation units.
isSigned() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type is signed.
isSingleton() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if this is a singleton interval, that is, if the lower bound and the upper bound are the same.
isStringType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of StringType.
isTop() - Method in class it.unive.lisa.analysis.AnalysisState
 
isTop() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
isTop() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
isTop() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
isTop() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
isTop() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
isTop() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
isTop() - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
isTop() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
isTop() - Method in interface it.unive.lisa.analysis.Lattice
Yields true if and only if this object represents the top of the lattice.
isTop() - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
isTop() - Method in class it.unive.lisa.analysis.nonrelational.Environment
Yields true if and only if this object represents the top of the lattice.
isTop() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
isTop() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
isTop() - Method in class it.unive.lisa.analysis.StatementStore
 
isTop() - Method in class it.unive.lisa.interprocedural.impl.CFGResults
 
isTop() - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
 
isTypeTokenType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of TypeTokenType.
isUnitType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of UnitType.
isUnsigned() - Method in class it.unive.lisa.symbolic.types.IntType
 
isUnsigned() - Method in interface it.unive.lisa.type.NumericType
Returns true if this numeric type is unsigned.
isUntyped() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of Untyped.
isVoidType() - Method in interface it.unive.lisa.type.Type
Yields true if and only if this type is an instance of VoidType.
isWeak() - Method in class it.unive.lisa.symbolic.value.Identifier
Yields whether or not this identifier is weak.
it.unive.lisa - package it.unive.lisa
 
it.unive.lisa.analysis - package it.unive.lisa.analysis
 
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.impl.dataflow - package it.unive.lisa.analysis.impl.dataflow
 
it.unive.lisa.analysis.impl.heap - package it.unive.lisa.analysis.impl.heap
 
it.unive.lisa.analysis.impl.heap.pointbased - package it.unive.lisa.analysis.impl.heap.pointbased
 
it.unive.lisa.analysis.impl.nonInterference - package it.unive.lisa.analysis.impl.nonInterference
 
it.unive.lisa.analysis.impl.numeric - package it.unive.lisa.analysis.impl.numeric
 
it.unive.lisa.analysis.lattices - package it.unive.lisa.analysis.lattices
 
it.unive.lisa.analysis.nonrelational - package it.unive.lisa.analysis.nonrelational
 
it.unive.lisa.analysis.nonrelational.heap - package it.unive.lisa.analysis.nonrelational.heap
 
it.unive.lisa.analysis.nonrelational.inference - package it.unive.lisa.analysis.nonrelational.inference
 
it.unive.lisa.analysis.nonrelational.value - package it.unive.lisa.analysis.nonrelational.value
 
it.unive.lisa.analysis.representation - package it.unive.lisa.analysis.representation
 
it.unive.lisa.analysis.types - package it.unive.lisa.analysis.types
 
it.unive.lisa.analysis.value - package it.unive.lisa.analysis.value
 
it.unive.lisa.caches - package it.unive.lisa.caches
 
it.unive.lisa.checks - package it.unive.lisa.checks
 
it.unive.lisa.checks.semantic - package it.unive.lisa.checks.semantic
 
it.unive.lisa.checks.syntactic - package it.unive.lisa.checks.syntactic
 
it.unive.lisa.checks.warnings - package it.unive.lisa.checks.warnings
 
it.unive.lisa.interprocedural - package it.unive.lisa.interprocedural
 
it.unive.lisa.interprocedural.callgraph - package it.unive.lisa.interprocedural.callgraph
 
it.unive.lisa.interprocedural.callgraph.impl - package it.unive.lisa.interprocedural.callgraph.impl
 
it.unive.lisa.interprocedural.impl - package it.unive.lisa.interprocedural.impl
 
it.unive.lisa.logging - package it.unive.lisa.logging
 
it.unive.lisa.outputs - package it.unive.lisa.outputs
 
it.unive.lisa.outputs.compare - package it.unive.lisa.outputs.compare
 
it.unive.lisa.program - package it.unive.lisa.program
 
it.unive.lisa.program.annotations - package it.unive.lisa.program.annotations
 
it.unive.lisa.program.annotations.matcher - package it.unive.lisa.program.annotations.matcher
 
it.unive.lisa.program.annotations.values - package it.unive.lisa.program.annotations.values
 
it.unive.lisa.program.cfg - package it.unive.lisa.program.cfg
 
it.unive.lisa.program.cfg.controlFlow - package it.unive.lisa.program.cfg.controlFlow
 
it.unive.lisa.program.cfg.edge - package it.unive.lisa.program.cfg.edge
 
it.unive.lisa.program.cfg.statement - package it.unive.lisa.program.cfg.statement
 
it.unive.lisa.symbolic - package it.unive.lisa.symbolic
 
it.unive.lisa.symbolic.heap - package it.unive.lisa.symbolic.heap
 
it.unive.lisa.symbolic.types - package it.unive.lisa.symbolic.types
 
it.unive.lisa.symbolic.value - package it.unive.lisa.symbolic.value
 
it.unive.lisa.type - package it.unive.lisa.type
 
it.unive.lisa.util.collections - package it.unive.lisa.util.collections
 
it.unive.lisa.util.collections.externalSet - package it.unive.lisa.util.collections.externalSet
 
it.unive.lisa.util.collections.workset - package it.unive.lisa.util.collections.workset
 
it.unive.lisa.util.datastructures.graph - package it.unive.lisa.util.datastructures.graph
 
it.unive.lisa.util.datastructures.graph.algorithms - package it.unive.lisa.util.datastructures.graph.algorithms
 
it.unive.lisa.util.file - package it.unive.lisa.util.file
 
it.unive.lisa.util.numeric - package it.unive.lisa.util.numeric
 
IterableArray<E> - Class in it.unive.lisa.util.collections
An iterable over an array of elements.
IterableArray(E[]) - Constructor for class it.unive.lisa.util.collections.IterableArray
Builds the iterable.
iterate(Logger, E[], String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given array into an Iterable instance that automatically logs at level Level.INFO while traversing the array.
iterate(Logger, Iterable<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given iterable into an Iterable instance that automatically logs at level Level.INFO while traversing the array.
iterate(Logger, Collection<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given collection into an Iterable instance that automatically logs at level Level.INFO while traversing the collection.
iterate(Logger, Stream<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given stream into an Iterable instance that automatically logs at level Level.INFO while traversing a collection created from the stream.
iterate(Logger, Level, E[], String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given array into an Iterable instance that automatically logs while traversing the array.
iterate(Logger, Level, Iterable<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given iterable into an Iterable instance that automatically logs while traversing the iterable.
iterate(Logger, Level, Collection<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given collection into an Iterable instance that automatically logs while traversing the collection.
iterate(Logger, Level, Stream<E>, String, String) - Static method in class it.unive.lisa.logging.IterationLogger
Wraps the given array into an Iterable instance that automatically logs while traversing a collection created from the stream.
IterationLogger - Class in it.unive.lisa.logging
An utility class that allows automatic logging while iterating over elements of a collection, stream or array.
iterator() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
iterator() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
iterator() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
iterator() - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
iterator() - Method in class it.unive.lisa.program.annotations.Annotations
 
iterator() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
iterator() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
iterator() - Method in class it.unive.lisa.util.collections.IterableArray
 
iterator() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
 

J

join(C, C, C, BiPredicate<T, T>, BinaryOperator<T>) - Static method in class it.unive.lisa.util.collections.CollectionUtilities
Joins (union) two collections, using a custom equality test to determine if two elements are to be considered equals and thus joined together through the given joiner.
join(CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Joins two CFGWithAnalysisResults together.
join(N, T, T) - Method in interface it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint.FixpointImplementation
Given a node and two states, joins the states (i.e.
JsonReport - Class in it.unive.lisa.outputs
A report of an executed analysis that can be dumped in json format, and that can be read from a json file.
JsonReport() - Constructor for class it.unive.lisa.outputs.JsonReport
Builds an empty report.
JsonReport(Collection<Warning>, Collection<String>) - Constructor for class it.unive.lisa.outputs.JsonReport
Builds the report, containing the given warnings and files.
JsonReport.JsonWarning - Class in it.unive.lisa.outputs
A warning that is ready to dump into a JsonReport.
JsonReportComparer - Class in it.unive.lisa.outputs.compare
A class providing capabilities for finding differences between two JsonReports.
JsonReportComparer() - Constructor for class it.unive.lisa.outputs.compare.JsonReportComparer
 
JsonReportComparer.DiffReporter - Interface in it.unive.lisa.outputs.compare
An object that provides callbacks for reporting differences when comparing JsonReports.
JsonReportComparer.REPORT_TYPE - Enum in it.unive.lisa.outputs.compare
An enumeration defining the different type of reports that can be issued.
JsonReportComparer.REPORTED_COMPONENT - Enum in it.unive.lisa.outputs.compare
An enumeration defining the different components of a JsonReport, in order to distinguish which one of them caused a difference being reported.
JsonWarning() - Constructor for class it.unive.lisa.outputs.JsonReport.JsonWarning
Builds an empty warning with no message.
JsonWarning(Warning) - Constructor for class it.unive.lisa.outputs.JsonReport.JsonWarning
Builds the warning, cloning the information from the given Warning.

K

keyLift(Set<K>, Set<K>) - Method in interface it.unive.lisa.analysis.lattices.FunctionalLattice.KeyFunctionalLift
Yields the lift of first and second key sets.
kill(Identifier, ValueExpression, ProgramPoint, D) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
The dataflow kill operation, yielding the dataflow elements that are killed by the assignment of the given expression to the given id.
kill(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
kill(Identifier, ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
kill(Identifier, ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
kill(ValueExpression, ProgramPoint, D) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
The dataflow kill operation, yielding the dataflow elements that are killed by evaluating the given non-assigning expression.
kill(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<AvailableExpressions>) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
kill(ValueExpression, ProgramPoint, DefiniteForwardDataflowDomain<ConstantPropagation>) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
kill(ValueExpression, ProgramPoint, PossibleForwardDataflowDomain<ReachingDefinitions>) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 

L

LABEL - Static variable in class it.unive.lisa.outputs.DotGraph
The label attribute name.
lattice - Variable in class it.unive.lisa.analysis.lattices.FunctionalLattice
The underlying lattice.
Lattice<L extends Lattice<L>> - Interface in it.unive.lisa.analysis
An interface for elements that follow a lattice structure.
left - Variable in class it.unive.lisa.analysis.combination.CartesianProduct
The left-hand side abstract domain.
left - Variable in class it.unive.lisa.analysis.representation.PairRepresentation
The left-most element.
lessOrEqual(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
lessOrEqual(CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
lessOrEqual(L) - Method in class it.unive.lisa.analysis.BaseLattice
 
lessOrEqual(L) - Method in interface it.unive.lisa.analysis.Lattice
Yields true if and only if this lattice element is in relation with (usually represented through ≤) the given one.
lessOrEqualAux(F) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
lessOrEqualAux(AnalysisState<A, H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
lessOrEqualAux(DefiniteForwardDataflowDomain<E>) - Method in class it.unive.lisa.analysis.dataflow.DefiniteForwardDataflowDomain
 
lessOrEqualAux(PossibleForwardDataflowDomain<E>) - Method in class it.unive.lisa.analysis.dataflow.PossibleForwardDataflowDomain
 
lessOrEqualAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
lessOrEqualAux(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
lessOrEqualAux(TypeBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
lessOrEqualAux(NonInterference) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
lessOrEqualAux(IntegerConstantPropagation) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
lessOrEqualAux(Interval) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
lessOrEqualAux(Parity) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
lessOrEqualAux(Sign) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
lessOrEqualAux(HeapEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
lessOrEqualAux(InferenceSystem<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
lessOrEqualAux(InferredValue.InferredPair<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
lessOrEqualAux(SimpleAbstractState<H, V>) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
lessOrEqualAux(InferredTypes) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
lessOrEqualAux(L) - Method in class it.unive.lisa.analysis.BaseLattice
Yields true if and only if this lattice element is in relation with (usually represented through ≤) the given one, assuming that base cases have already been handled.
lessOrEqualAux(S) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
lessOrEqualAux(S) - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
LIFOWorkingSet<E> - Class in it.unive.lisa.util.collections.workset
A last-in, first-out working set.
lift(V, V) - Method in interface it.unive.lisa.analysis.lattices.FunctionalLattice.FunctionalLift
Yields the lift of first and second lattice element.
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
Builds a new configuration object, with default settings.
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 AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa
An auxiliary analysis runner for executing LiSA analysis.
Literal - Class in it.unive.lisa.program.cfg.statement
A literal, representing a constant value.
Literal(CFG, CodeLocation, Object, Type) - Constructor for class it.unive.lisa.program.cfg.statement.Literal
Builds a typed literal, consisting of a constant value, happening at the given location in the program.
LOGICAL_AND - it.unive.lisa.symbolic.value.BinaryOperator
Given two Boolean values b1 and b2 of type BooleanType, this operator returns the logical and between b1 and b2.
LOGICAL_NOT - it.unive.lisa.symbolic.value.UnaryOperator
Given a Boolean value of type BooleanType, this operator returns the logical negation of the value: if the Boolean value represents true, it returns false, and vice versa.
LOGICAL_OR - it.unive.lisa.symbolic.value.BinaryOperator
Given two Boolean values b1 and b2 of type BooleanType, this operator returns the logical or between b1 and b2.
LongAnnotationValue - Class in it.unive.lisa.program.annotations.values
A long annotation value.
LongAnnotationValue(long) - Constructor for class it.unive.lisa.program.annotations.values.LongAnnotationValue
Builds a long annotation value.
Loop - Class in it.unive.lisa.program.cfg.controlFlow
A ControlFlowStructure representing a loop.
Loop(AdjacencyMatrix<Statement, Edge, CFG>, Statement, Statement, Collection<Statement>) - Constructor for class it.unive.lisa.program.cfg.controlFlow.Loop
Builds the loop.
lowIsMinusInfinity() - Method in class it.unive.lisa.util.numeric.IntInterval
Yields true if the lower bound of this interval is set to minus infinity.
lub(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
lub(CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
lub(Identifier) - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
lub(Identifier) - Method in class it.unive.lisa.symbolic.value.Identifier
Yields the least upper bounds between two identifiers.
lub(L) - Method in class it.unive.lisa.analysis.BaseLattice
 
lub(L) - Method in interface it.unive.lisa.analysis.Lattice
Performs the least upper bound operation between this lattice element and the given one.
lubAux(F) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
lubAux(AnalysisState<A, H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
lubAux(DefiniteForwardDataflowDomain<E>) - Method in class it.unive.lisa.analysis.dataflow.DefiniteForwardDataflowDomain
 
lubAux(PossibleForwardDataflowDomain<E>) - Method in class it.unive.lisa.analysis.dataflow.PossibleForwardDataflowDomain
 
lubAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
lubAux(AllocationSites) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
lubAux(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
lubAux(TypeBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
lubAux(NonInterference) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
lubAux(IntegerConstantPropagation) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
lubAux(Interval) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
lubAux(Parity) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
lubAux(Sign) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
lubAux(ExpressionSet<T>) - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
lubAux(HeapEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
lubAux(InferenceSystem<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
lubAux(InferredValue.InferredPair<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
lubAux(SimpleAbstractState<H, V>) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
lubAux(InferredTypes) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
lubAux(L) - Method in class it.unive.lisa.analysis.BaseLattice
Performs the least upper bound operation between this lattice element and the given one, assuming that base cases have already been handled.
lubAux(S) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
lubAux(S) - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
lubKeys(Set<Identifier>, Set<Identifier>) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
lubKeys(Set<K>, Set<K>) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields the union of the keys between k1 and k2.

M

MapRepresentation - Class in it.unive.lisa.analysis.representation
A DomainRepresentation in the form of a key-value mapping.
MapRepresentation(Map<DomainRepresentation, DomainRepresentation>) - Constructor for class it.unive.lisa.analysis.representation.MapRepresentation
Builds a new representation containing the given map.
MapRepresentation(Map<K, V>, Function<K, DomainRepresentation>, Function<V, DomainRepresentation>) - Constructor for class it.unive.lisa.analysis.representation.MapRepresentation
Builds a new representation starting from the given map.
matches(int, Parameter, Expression) - Method in enum it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
Yields true if and only if the signature of the pos-th parameter of a cfg is matched by the given actual parameter, according to this strategy.
matches(Annotation) - Method in interface it.unive.lisa.program.annotations.matcher.AnnotationMatcher
Returns true if this matcher matches the input annotation, false otherwise.
matches(Annotation) - Method in class it.unive.lisa.program.annotations.matcher.BasicAnnotationMatcher
 
matches(Parameter[], Expression[]) - Method in enum it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
Yields true if and only if the signature of a cfg (i.e.
matchesSignature(CFGDescriptor) - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Checks if the signature defined by the given descriptor is matched by the one of this descriptor.
MathNumber - Class in it.unive.lisa.util.numeric
A wrapper around BigDecimal to represent the mathematical concept of a number, that can be also plus or minus infinity, in a convenient way.
MathNumber(double) - Constructor for class it.unive.lisa.util.numeric.MathNumber
Builds a math number representing the given value.
MathNumber(long) - Constructor for class it.unive.lisa.util.numeric.MathNumber
Builds a math number representing the given value.
MathNumber(BigDecimal) - Constructor for class it.unive.lisa.util.numeric.MathNumber
Builds a math number representing the given value.
max(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the maximum number between this and other.
MemoryPointer - Class in it.unive.lisa.symbolic.value
A memory pointer to a heap location.
MemoryPointer(ExternalSet<Type>, HeapLocation, Annotations, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.MemoryPointer
Builds a memory pointer.
MemoryPointer(ExternalSet<Type>, HeapLocation, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.MemoryPointer
Builds a memory pointer with empty annotations.
mergeWith(AdjacencyMatrix<N, E, G>) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Merges this matrix with the given one, by adding all nodes and all edges contained in other.
MetaVariableCreator - Interface in it.unive.lisa.program.cfg.statement
Objects implementing this interface will produce a meta-variable to represent the value that they produce on the stack during the computation of their semantic.
MILLIS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as milliseconds.
min(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the minimum number between this and other.
MINUS_INFINITY - Static variable in class it.unive.lisa.util.numeric.MathNumber
The constant for minus infinity.
MINUS_ONE - Static variable in class it.unive.lisa.util.numeric.IntInterval
The interval [-1, -1].
MINUS_ONE - Static variable in class it.unive.lisa.util.numeric.MathNumber
The constant -1.
MINUTES - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as minutes.
MINUTES_AND_SECONDS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as minutes and seconds.
mk() - Static method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
Yields a new, empty working set.
mk(E, Set<E>, boolean, boolean) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
Utility for creating a concrete instance of DataflowDomain given its core fields.
mk(E, Set<E>, boolean, boolean) - Method in class it.unive.lisa.analysis.dataflow.DefiniteForwardDataflowDomain
 
mk(E, Set<E>, boolean, boolean) - Method in class it.unive.lisa.analysis.dataflow.PossibleForwardDataflowDomain
 
mk(H) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
Creates a new instance of this domain containing the same abstract information of reference.
mk(AnalysisState<A, H, V>, Map<Statement, AnalysisState<A, H, V>>) - Method in class it.unive.lisa.analysis.StatementStore
 
mk(CFGWithAnalysisResults<A, H, V>, Map<ContextSensitivityToken, CFGWithAnalysisResults<A, H, V>>) - Method in class it.unive.lisa.interprocedural.impl.CFGResults
 
mk(MonolithicHeap) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
mk(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
mk(TypeBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
mk(CFGResults<A, H, V>, Map<CFG, CFGResults<A, H, V>>) - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
 
mk(WorkingSet<E>) - Static method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
Yields a new, empty working set.
mk(Set<E>) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Utility for creating a concrete instance of InverseSetLattice given a set.
mk(Set<E>) - Method in class it.unive.lisa.analysis.lattices.SetLattice
Utility for creating a concrete instance of SetLattice given a set.
mk(Set<AllocationSite>) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
mk(Set<T>) - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
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.ValueCartesianProduct
 
mk(T, Map<Identifier, T>) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
mk(T, Map<Identifier, T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
mk(T, Map<Identifier, T>) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
mk(V, Map<K, V>) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Builds a instance of this class from the given lattice instance and the given mapping.
mkDotFile(String, FileManager.WriteAction) - Method in class it.unive.lisa.util.file.FileManager
Creates a UTF-8 encoded file with the given name, appending the dot extension.
mkEmptySet() - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Builds an empty ExternalSet that uses this cache.
mkNewFunction(Map<K, V>) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Creates a new instance of the underlying function.
mkOutputFile(String, boolean, FileManager.WriteAction) - Method in class it.unive.lisa.util.file.FileManager
Creates a UTF-8 encoded file with the given name.
mkOutputFile(String, FileManager.WriteAction) - Method in class it.unive.lisa.util.file.FileManager
Creates a UTF-8 encoded file with the given name.
mkSet(Iterable<T>) - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Builds an ExternalSet that uses this cache and contains the elements of the given iterable.
mkSingletonSet(T) - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Builds an ExternalSet that uses this cache and contains only the given element.
mkUniversalSet() - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Builds an ExternalSet that uses this cache and contains all of its elements.
ModularWorstCaseAnalysis<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.interprocedural.impl
A worst case modular analysis were all method calls return top.
ModularWorstCaseAnalysis() - Constructor for class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
Builds the call graph.
MonolithicHeap - Class in it.unive.lisa.analysis.impl.heap
A monolithic heap implementation that abstracts all heap locations to a unique identifier.
MonolithicHeap() - Constructor for class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
mul(IntInterval) - Method in class it.unive.lisa.util.numeric.IntInterval
Performs the interval multiplication between this and other.
multiply(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the result of this * other.
multiTransform(Function<T, Collection<T>>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Transforms this set into another set where each element is obtained by transforming elements of this set.

N

NaN - Static variable in class it.unive.lisa.util.numeric.MathNumber
A constant for representing numbers obtained from an operation that does not produce a result (e.g.
NANOS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as nanoseconds.
NativeCall - Class in it.unive.lisa.program.cfg.statement
A native call, modeling the usage of one of the native constructs of the language.
NativeCall(CFG, CodeLocation, String, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.NativeCall
Builds the untyped native call, happening at the given location in the program.
NativeCall(CFG, CodeLocation, String, Type, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.NativeCall
Builds the native call, happening at the given location in the program.
NativeCFG - Class in it.unive.lisa.program.cfg
A native cfg, representing a cfg that is usually provided by the runtime of the programming language.
NativeCFG(CFGDescriptor, Class<? extends NativeCall>) - Constructor for class it.unive.lisa.program.cfg.NativeCFG
Builds the native control flow graph.
negate() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Negates the current satisfiability, getting the opposite result.
newInstance(CallGraphNode, CallGraphNode) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
newInstance(Statement, Statement) - Method in class it.unive.lisa.program.cfg.edge.FalseEdge
 
newInstance(Statement, Statement) - Method in class it.unive.lisa.program.cfg.edge.SequentialEdge
 
newInstance(Statement, Statement) - Method in class it.unive.lisa.program.cfg.edge.TrueEdge
 
newInstance(N, N) - Method in interface it.unive.lisa.util.datastructures.graph.Edge
Builds a new instance of this edge, connecting the given nodes.
Node<N extends Node<N,​E,​G>,​E extends Edge<N,​E,​G>,​G extends Graph<G,​N,​E>> - Interface in it.unive.lisa.util.datastructures.graph
A node of a Graph.
NODE_SHAPE - Static variable in class it.unive.lisa.outputs.DotGraph
The default shape of a node.
noneMatch(Predicate<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields true iff none of the elements contained in this set satisfy the given predicate.
NonInterference - Class in it.unive.lisa.analysis.impl.nonInterference
The type-system based implementation of the non interference analysis.
NonInterference() - Constructor for class it.unive.lisa.analysis.impl.nonInterference.NonInterference
Builds a new instance of non interference, referring to the top element of the lattice.
NonRelationalDomain<T extends NonRelationalDomain<T,​E,​F>,​E extends SymbolicExpression,​F extends FunctionalLattice<F,​Identifier,​T>> - Interface in it.unive.lisa.analysis.nonrelational
A NonRelationalElement that models the standard concept of non-relational abstract domain, and that is able to compute the value of a SymbolicExpressions of type E by knowing the values of all program variables.
NonRelationalElement<T extends NonRelationalElement<T,​E,​F>,​E extends SymbolicExpression,​F extends FunctionalLattice<F,​Identifier,​T>> - Interface in it.unive.lisa.analysis.nonrelational
A non-relational domain, that is able to compute the value of a SymbolicExpressions of type E by knowing the values of all program variables.
NonRelationalHeapDomain<T extends NonRelationalHeapDomain<T>> - Interface in it.unive.lisa.analysis.nonrelational.heap
A non-relational heap domain, that is able to compute the value of a SymbolicExpression by knowing the values of all program variables.
NonRelationalValueDomain<T extends NonRelationalValueDomain<T>> - Interface in it.unive.lisa.analysis.nonrelational.value
A non-relational value domain, that is able to compute the value of a ValueExpression by knowing the values of all program variables.
NoOp - Class in it.unive.lisa.program.cfg.statement
A statement that does nothing.
NoOp(CFG, CodeLocation) - Constructor for class it.unive.lisa.program.cfg.statement.NoOp
Builds the no-op, happening at the given location in the program.
NORMAL_NODE_COLOR - Static variable in class it.unive.lisa.outputs.DotGraph
The color of a normal node.
NOT_SATISFIED - it.unive.lisa.analysis.SemanticDomain.Satisfiability
Represent the fact that an expression is not satisfied.
NullConstant - Class in it.unive.lisa.symbolic.value
A Constant that represent the null value.
NullConstant(CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.NullConstant
Builds a null constant.
NullLiteral - Class in it.unive.lisa.program.cfg.statement
A literal representing the null constant.
NullLiteral(CFG, CodeLocation) - Constructor for class it.unive.lisa.program.cfg.statement.NullLiteral
Builds the null literal, happening at the given location in the program.
nullSafeCompare(boolean, T, T, Comparator<T>) - Static method in class it.unive.lisa.util.collections.CollectionUtilities
A null-safe comparison callback that invokes the given comparator only if the given objects are both non-null.
NullType - Class in it.unive.lisa.type
The Null type, that is the type of {#link NullLiteral}.
NUMERIC_ADD - it.unive.lisa.symbolic.value.BinaryOperator
Given two integers values n1 and n2 of type NumericType, this operator returns the addition of n1 with n2.
NUMERIC_DIV - it.unive.lisa.symbolic.value.BinaryOperator
Given two integers values n1 and n2, with n2 not equal to zero, of type NumericType, this operator returns the division of i1 with n2.
NUMERIC_MOD - it.unive.lisa.symbolic.value.BinaryOperator
Given two integers values n1 and n2 of type NumericType, this operator returns the modulo of n1 with n2.
NUMERIC_MUL - it.unive.lisa.symbolic.value.BinaryOperator
Given two integers values n1 and n2 of type NumericType, this operator returns the multiplication of i1 with n2.
NUMERIC_NEG - it.unive.lisa.symbolic.value.UnaryOperator
Given a numeric value of type NumericType, this operator returns the negation of the numerical value.
NUMERIC_SUB - it.unive.lisa.symbolic.value.BinaryOperator
Given two integers values n1 and n2 of type NumericType, this operator returns the subtraction of n1 with n2.
NumericType - Interface in it.unive.lisa.type
Numeric type interface.

O

of(Class<? extends WorkingSet<E>>) - Static method in interface it.unive.lisa.util.collections.workset.WorkingSet
Yields a WorkingSet instance by invoking a static mk() method on the given class.
off() - Method in class it.unive.lisa.logging.Counter
Turns off the counter, logging the event.
offset - Variable in class it.unive.lisa.program.cfg.statement.Statement
The offset of the statement within the cfg.
on() - Method in class it.unive.lisa.logging.Counter
Turns on the counter, logging the event.
ONE - Static variable in class it.unive.lisa.util.numeric.IntInterval
The interval [1, 1].
ONE - Static variable in class it.unive.lisa.util.numeric.MathNumber
The constant 1.
ONLY_FIRST - it.unive.lisa.outputs.compare.JsonReportComparer.REPORT_TYPE
Indicates that the objects being reported are present only in the first report.
ONLY_SECOND - it.unive.lisa.outputs.compare.JsonReportComparer.REPORT_TYPE
Indicates that the objects being reported are present only in the second report.
OpenCall - Class in it.unive.lisa.program.cfg.statement
A call to a CFG that is not under analysis.
OpenCall(CFG, CodeLocation, String, Type, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.OpenCall
Builds the open call, happening at the given location in the program.
Operator - Interface in it.unive.lisa.symbolic.value
An operator that causes a transformation of one or more SymbolicExpressions.
opposite() - Method in interface it.unive.lisa.symbolic.value.Operator
or(SemanticDomain.Satisfiability) - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Performs a logical or between this satisfiability and the given one.
OutOfScopeIdentifier - Class in it.unive.lisa.symbolic.value
An identifier outside the current scope of the call, that is, in a method that is in the call stack but not the last one.
OutOfScopeIdentifier(Identifier, ScopeToken, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
Builds the identifier outside the scope.
overriddenBy() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the collection of CodeMember that override the cfg associated with this descriptor.
overrides() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Yields the collection of CodeMember that the cfg associated with this descriptor overrides.

P

PairRepresentation - Class in it.unive.lisa.analysis.representation
A DomainRepresentation in the form of a pair of elements.
PairRepresentation(DomainRepresentation, DomainRepresentation) - Constructor for class it.unive.lisa.analysis.representation.PairRepresentation
Builds a new representation containing the given pair of elements.
PairRepresentation(L, R, Function<L, DomainRepresentation>, Function<R, DomainRepresentation>) - Constructor for class it.unive.lisa.analysis.representation.PairRepresentation
Builds a new representation starting from the given pair of elements.
Parameter - Class in it.unive.lisa.program.cfg
A CFG parameter identified by its name and its type, containing the information about the source file, line and column where the parameter is defined.
Parameter(CodeLocation, String) - Constructor for class it.unive.lisa.program.cfg.Parameter
Builds an untyped parameter reference, identified by its name.
Parameter(CodeLocation, String, Type) - Constructor for class it.unive.lisa.program.cfg.Parameter
Builds the parameter reference, identified by its name and its type, happening at the given location in the program.
Parameter(CodeLocation, String, Type, Annotations) - Constructor for class it.unive.lisa.program.cfg.Parameter
Builds the parameter reference, identified by its name and its type, happening at the given location in the program.
Parity - Class in it.unive.lisa.analysis.impl.numeric
The 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.impl.numeric.Parity
Builds the parity abstract domain, representing the top of the parity abstract domain.
peek() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
peek() - Method in interface it.unive.lisa.util.collections.workset.WorkingSet
Returns the next element to be processed from this working set without removing it.
perform(Writer) - Method in interface it.unive.lisa.util.file.FileManager.WriteAction
Performs the operation on the given writer.
PluggableStatement - Interface in it.unive.lisa.program.cfg.statement
A Statement that can be dynamically plugged into a CFG in place of another statement.
plus(IntInterval) - Method in class it.unive.lisa.util.numeric.IntInterval
Performs the interval addition between this and other.
PLUS_INFINITY - Static variable in class it.unive.lisa.util.numeric.MathNumber
The constant for plus infinity.
PointBasedHeap - Class in it.unive.lisa.analysis.impl.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.impl.heap.pointbased.PointBasedHeap
Builds a new instance of field-insensitive point-based heap.
PointBasedHeap(HeapEnvironment<AllocationSites>) - Constructor for class it.unive.lisa.analysis.impl.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.impl.heap.pointbased
PointerType - Interface in it.unive.lisa.type
Pointer type interface.
pop() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
pop() - Method in interface it.unive.lisa.util.collections.workset.WorkingSet
Removes the next element to be processed from this working set and returns it.
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.AnalysisState
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
popScope(ScopeToken) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
Pop a scope to the dataflow element.
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
popScope(ScopeToken) - Method in interface it.unive.lisa.analysis.SemanticDomain
Pops the scope identified by the given token from the domain.
popScope(ScopeToken) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.heap.HeapExpression
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.SymbolicExpression
Pops the scope identified by the given token from the expression.
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Constant
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.MemoryPointer
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.PushAny
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Skip
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
popScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Variable
 
popToken() - Method in class it.unive.lisa.interprocedural.impl.ContextInsensitiveToken
 
popToken() - Method in interface it.unive.lisa.interprocedural.impl.ContextSensitivityToken
Creates a context sensitive token popping the scope on top of the stack.
popToken() - Method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
 
popToken() - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
PossibleForwardDataflowDomain<E extends DataflowElement<PossibleForwardDataflowDomain<E>,​E>> - Class in it.unive.lisa.analysis.dataflow
A DataflowDomain for forward and possible dataflow analysis.
PossibleForwardDataflowDomain(E) - Constructor for class it.unive.lisa.analysis.dataflow.PossibleForwardDataflowDomain
Builds an empty domain.
predecessorsOf(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Yields the collection of the nodes that are predecessors of the given vertex, that is, all nodes such that there exist an edge in this matrix going from such node to the given one.
predecessorsOf(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Yields the collection of the nodes that are predecessors of the given vertex, that is, all nodes such that there exist an edge in this control flow graph going from such node to the given one.
prepareEntryStateOfEntryPoint(AnalysisState<A, H, V>, CFG) - Method in class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
Prepare and entry state for the analysis of a method by renaming parameters.
preSimplify(Statement) - Method in class it.unive.lisa.program.cfg.CFG
 
preSimplify(N) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Callback that is invoked on a node before simplifying it.
program - Variable in class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
The program.
Program - Class in it.unive.lisa.program
A program that LiSA can analyze.
Program() - Constructor for class it.unive.lisa.program.Program
Builds an empty program.
PROGRAM_NAME - Static variable in class it.unive.lisa.program.Program
The name of the program.
ProgramPoint - Interface in it.unive.lisa.program.cfg
A program point, representing an instruction that is happening in one of the CFG under analysis.
ProgramValidationException - Exception in it.unive.lisa.program
A generic Exception that indicates that something has gone wrong while validating a Program's structure or when computing unit's hierarchies and cfgs' overridings.
ProgramValidationException() - Constructor for exception it.unive.lisa.program.ProgramValidationException
Builds the exception.
ProgramValidationException(String) - Constructor for exception it.unive.lisa.program.ProgramValidationException
Builds the exception.
ProgramValidationException(String, Throwable) - Constructor for exception it.unive.lisa.program.ProgramValidationException
Builds the exception.
ProgramValidationException(Throwable) - Constructor for exception it.unive.lisa.program.ProgramValidationException
Builds the exception.
push(E) - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
push(E) - Method in interface it.unive.lisa.util.collections.workset.WorkingSet
Pushes a new element into this working set.
PushAny - Class in it.unive.lisa.symbolic.value
An expression converting that push any possible value on the stack.
PushAny(ExternalSet<Type>, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.PushAny
Builds the push any.
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.AnalysisState
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
pushScope(ScopeToken) - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
Push a scope to the dataflow element.
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
pushScope(ScopeToken) - Method in interface it.unive.lisa.analysis.SemanticDomain
Pushes a new scope, identified by the give token, in the domain.
pushScope(ScopeToken) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.heap.HeapExpression
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.SymbolicExpression
Pushes a new scope, identified by the give token, in the expression.
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Constant
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.MemoryPointer
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.PushAny
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Skip
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
pushScope(ScopeToken) - Method in class it.unive.lisa.symbolic.value.Variable
 
pushToken(ScopeToken) - Method in class it.unive.lisa.interprocedural.impl.ContextInsensitiveToken
 
pushToken(ScopeToken) - Method in interface it.unive.lisa.interprocedural.impl.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.impl.RecursionFreeToken
 
pushToken(ScopeToken) - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
put(Statement, AnalysisState<A, H, V>) - Method in class it.unive.lisa.analysis.StatementStore
Stores the given state for the given statement.
putResult(ContextSensitivityToken, CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.interprocedural.impl.CFGResults
Stores the result of a fixpoint computation on a cfg, if needed.
putResult(CFG, ContextSensitivityToken, CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
Stores the result of a fixpoint computation on a cfg.
putState(K, V) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
Yields an instance of this class equal to the receiver of the call, but with key mapped to state.

R

ReachingDefinitions - Class in it.unive.lisa.analysis.impl.dataflow
An implementation of the reaching definition dataflow analysis.
ReachingDefinitions() - Constructor for class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
Builds an empty reaching definition object.
read(Reader) - Static method in class it.unive.lisa.outputs.JsonReport
Reads a JsonReport from a Reader instance, deserializing it as a json object.
readDot(Reader) - Static method in class it.unive.lisa.outputs.DotGraph
Reads a graph through the given Reader.
RecursionFreeToken - Class in it.unive.lisa.interprocedural.impl
A context sensitive token representing an entire call chain up until a recursion.
reduce(T, BinaryOperator<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Reduces this set to a single element.
registerDefaultFor(Class<?>, Class<?>) - Static method in class it.unive.lisa.LiSAFactory
Registers a default implementation for component, taking precedence over the defaults defined through DefaultImplementation.
registerType(Type) - Method in class it.unive.lisa.program.Program
Registers a new Type that appears in the program.
remove(Object) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
remove(Object) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
removeAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
removeAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
removeEdge(E) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Removes the given edge from the matrix.
removeFrom(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Removes every node and edge that is reachable from the given root.
removeNegations() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
removeNegations() - Method in class it.unive.lisa.symbolic.value.ValueExpression
Yields the same value expression removing any negation, namely the UnaryOperator.LOGICAL_NOT operator, preserving its semantics, if possible.
removeNode(N) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Removes the given node from the matrix, together with all its connected edges.
report(JsonReportComparer.REPORTED_COMPONENT, JsonReportComparer.REPORT_TYPE, Collection<?>) - Method in interface it.unive.lisa.outputs.compare.JsonReportComparer.DiffReporter
Reports a difference in one of the components of the reports.
representation() - Method in class it.unive.lisa.analysis.AnalysisState
 
representation() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
representation() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
representation() - Method in interface it.unive.lisa.analysis.dataflow.DataflowElement
Yields a DomainRepresentation of the information contained in this domain's instance.
representation() - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
representation() - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
representation() - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
representation() - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
representation() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
representation() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
representation() - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
representation() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
representation() - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
representation() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
representation() - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
representation() - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
representation() - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
representation() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
representation() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
Yields a DomainRepresentation of the information contained in this pair.
representation() - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
Yields a DomainRepresentation of the information contained in this domain's instance.
representation() - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a DomainRepresentation of the information contained in this domain's instance.
representation() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
representation() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
resolve(UnresolvedCall) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
resolve(UnresolvedCall) - Method in interface it.unive.lisa.interprocedural.callgraph.CallGraph
Yields a Call implementation that corresponds to the resolution of the given UnresolvedCall.
resolve(UnresolvedCall) - Method in class it.unive.lisa.interprocedural.impl.CallGraphBasedAnalysis
 
resolve(UnresolvedCall) - Method in class it.unive.lisa.interprocedural.impl.ModularWorstCaseAnalysis
 
resolve(UnresolvedCall) - Method in interface it.unive.lisa.interprocedural.InterproceduralAnalysis
Yields a Call implementation that corresponds to the resolution of the given UnresolvedCall.
Ret - Class in it.unive.lisa.program.cfg.statement
Terminates the execution of the CFG where this statement lies, without returning anything to the caller.
Ret(CFG, CodeLocation) - Constructor for class it.unive.lisa.program.cfg.statement.Ret
Builds the return, happening at the given location in the program.
retainAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
retainAll(Collection<?>) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
Return - Class in it.unive.lisa.program.cfg.statement
Returns an expression to the caller CFG, terminating the execution of the CFG where this statement lies.
Return(CFG, CodeLocation, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.Return
Builds the return, returning expression to the caller CFG, happening at the given location in the program.
rewrite(Statement, Expression...) - Method in class it.unive.lisa.program.cfg.NativeCFG
Produces a NativeCall providing the semantics of this native cfg.
rewrite(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
rewrite(SymbolicExpression, HeapEnvironment<T>, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain
Rewrites a SymbolicExpression, getting rid of the parts that access heap structures, substituting them with synthetic HeapLocations representing the accessed locations.
rewrite(SymbolicExpression, ProgramPoint) - Method in interface it.unive.lisa.analysis.heap.HeapDomain
Rewrites a SymbolicExpression, getting rid of the parts that access heap structures, substituting them with synthetic HeapLocations representing the accessed locations.
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.FieldSensitivePointBasedHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
rewrite(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
rewriteAll(ExpressionSet<SymbolicExpression>, HeapEnvironment<T>, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain
Rewrites all SymbolicExpressions, getting rid of the parts that access heap structures, substituting them with synthetic HeapLocations representing the accessed locations.
rewriteAll(ExpressionSet<SymbolicExpression>, ProgramPoint) - Method in interface it.unive.lisa.analysis.heap.HeapDomain
Rewrites all SymbolicExpressions, getting rid of the parts that access heap structures, substituting them with synthetic HeapLocations representing the accessed locations.
Rewriter() - Constructor for class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
Rewriter() - Constructor for class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.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.representation.PairRepresentation
The right-most element.
roundDown() - Method in class it.unive.lisa.util.numeric.MathNumber
Rounds down this number to the next integer value towards minus infinity (see RoundingMode.FLOOR).
roundUp() - Method in class it.unive.lisa.util.numeric.MathNumber
Rounds down this number to the next integer value towards plus infinity (see RoundingMode.CEILING).
RTACallGraph - Class in it.unive.lisa.interprocedural.callgraph.impl
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.impl.RTACallGraph
 
run() - Method in interface it.unive.lisa.logging.TimerLogger.LoggableAction
Runs the action.
run() - Method in interface it.unive.lisa.logging.TimerLogger.LoggableSupplier
Runs the supplier.
run(Program) - Method in class it.unive.lisa.LiSA
Runs LiSA, executing all the checks that have been added.

S

sameContent() - Method in class it.unive.lisa.util.collections.CollectionsDiffBuilder
Yields true if and only if the two collections used to create this builder contain the same elements, that is, if both CollectionsDiffBuilder.getOnlyFirst() and CollectionsDiffBuilder.getOnlySecond() are empty.
SATISFIED - it.unive.lisa.analysis.SemanticDomain.Satisfiability
Represent the fact that an expression is satisfied.
satisfies(E, F, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
Checks whether expression is satisfied in environment, assuming that the values of program variables are the ones stored in environment and returning an instance of SemanticDomain.Satisfiability.
satisfies(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
satisfies(E, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.Environment
 
satisfies(E, ProgramPoint) - Method in interface it.unive.lisa.analysis.SemanticDomain
Checks if the given expression is satisfied by the abstract values of this domain, returning an instance of SemanticDomain.Satisfiability.
satisfies(SymbolicExpression, HeapEnvironment<AllocationSites>, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.AnalysisState
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
satisfies(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
satisfies(ValueExpression, InferenceSystem<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
satisfies(ValueExpression, ValueEnvironment<T>, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
satisfies(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
satisfiesAbstractValue(T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of an abstract value of type <T>.
satisfiesAbstractValue(T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of an abstract value of type <T>.
satisfiesBinaryExpression(BinaryOperator, IntegerConstantPropagation, IntegerConstantPropagation, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
satisfiesBinaryExpression(BinaryOperator, Interval, Interval, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
satisfiesBinaryExpression(BinaryOperator, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
satisfiesBinaryExpression(BinaryOperator, InferredTypes, InferredTypes, InferredTypes, ProgramPoint) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
satisfiesBinaryExpression(BinaryOperator, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of a BinaryExpression applying operator to two expressions whose abstract values are left, and right.
satisfiesBinaryExpression(BinaryOperator, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of a BinaryExpression applying operator to two expressions whose abstract values are left, and right.
satisfiesNonNullConstant(Constant, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of the given non-null constant on this abstract domain.
satisfiesNonNullConstant(Constant, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of the given non-null constant on this abstract domain.
satisfiesNullConstant(ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of the null constant NullConstant on this abstract domain.
satisfiesNullConstant(T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of the null constant NullConstant on this abstract domain.
satisfiesPushAny(PushAny, T) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of the push any expression.
satisfiesTernaryExpression(TernaryOperator, Sign, Sign, Sign, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
satisfiesTernaryExpression(TernaryOperator, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of a TernaryExpression applying operator to three expressions whose abstract values are left, middle and right.
satisfiesTernaryExpression(TernaryOperator, T, T, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of a TernaryExpression applying operator to three expressions whose abstract values are left, middle and right.
satisfiesUnaryExpression(UnaryOperator, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
Yields the satisfiability of a UnaryExpression applying operator to an expression whose abstract value is arg, returning an instance of SemanticDomain.Satisfiability.
satisfiesUnaryExpression(UnaryOperator, T, T, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
Yields the satisfiability of a UnaryExpression applying operator to an expression whose abstract value is arg, returning an instance of SemanticDomain.Satisfiability.
ScopeToken - Class in it.unive.lisa.analysis
A token that can be used for pushing and popping scopes on local variables through SemanticDomain.pushScope(ScopeToken) and SemanticDomain.popScope(ScopeToken).
ScopeToken(CodeElement) - Constructor for class it.unive.lisa.analysis.ScopeToken
Builds a new scope, referring to the given code element.
SECONDS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as seconds.
SECONDS_AND_MILLIS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as seconds and milliseconds.
SemanticCheck - Interface in it.unive.lisa.checks.semantic
A Check that is able to exploit both the syntactic structure of the program and the semantic information produced with the fixpoint iteration.
SemanticDomain<D extends SemanticDomain<D,​E,​I>,​E extends SymbolicExpression,​I extends Identifier> - Interface in it.unive.lisa.analysis
A domain able to determine how abstract information evolves thanks to the semantics of statements and expressions.
SemanticDomain.Satisfiability - Enum in it.unive.lisa.analysis
The satisfiability of an expression.
SemanticEvaluator - Interface in it.unive.lisa.analysis
An entity that can perform semantic evaluations that is not a SemanticDomain.
SemanticException - Exception in it.unive.lisa.analysis
An exception that occurred during semantic computation.
SemanticException() - Constructor for exception it.unive.lisa.analysis.SemanticException
Builds the exception.
SemanticException(String) - Constructor for exception it.unive.lisa.analysis.SemanticException
Builds the exception.
SemanticException(String, Throwable) - Constructor for exception it.unive.lisa.analysis.SemanticException
Builds the exception.
SemanticException(Throwable) - Constructor for exception it.unive.lisa.analysis.SemanticException
Builds the exception.
SemanticExceptionWrapper - Exception in it.unive.lisa.analysis
A runtime exception that wraps a SemanticException, so that it can be thrown within lambdas.
SemanticExceptionWrapper(SemanticException) - Constructor for exception it.unive.lisa.analysis.SemanticExceptionWrapper
Builds the exception wrapper.
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Assignment
Semantics of an assignment (left = right) is evaluated as follows: the semantic of the right is evaluated using the given entryState, returning a new analysis state as_r = <state_r, expr_r> the semantic of the left is evaluated using as_r, returning a new analysis state as_l = <state_l, expr_l> the final post-state is evaluated through AnalysisState.assign(Identifier, SymbolicExpression, ProgramPoint), using expr_l as id and expr_r as value This means that all side effects from right are evaluated before the ones from left.

Computes the semantics of the statement, expressing how semantic information is transformed by the execution of this statement.
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Call
Semantics of a call statement is evaluated by computing the semantics of its parameters, from left to right, using the analysis state from each parameter's computation as entry state for the next one.
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Literal
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.NullLiteral
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Ret
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Return
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Statement
Computes the semantics of the statement, expressing how semantic information is transformed by the execution of this statement.
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.Throw
 
semantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, StatementStore<A, H, V>) - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
semantics(N, T) - Method in interface it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint.FixpointImplementation
Given a node and its entry state, computes its exit state relying on its semantics.

This callback is invoked after the overall entry state for a node has been computed through Fixpoint.FixpointImplementation.union(Object, Object, Object) of the exit states of its predecessors.
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
Yields a new instance of this domain, built by evaluating the semantics of the given heap expression.
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
semanticsOf(HeapExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
SequentialEdge - Class in it.unive.lisa.program.cfg.edge
A sequential edge connecting two statement.
SequentialEdge(Statement, Statement) - Constructor for class it.unive.lisa.program.cfg.edge.SequentialEdge
Builds the edge.
setAbstractState(AbstractState<?, ?, ?>) - Method in class it.unive.lisa.LiSAConfiguration
Sets the AbstractState to use for the analysis.
setCallGraph(CallGraph) - Method in class it.unive.lisa.LiSAConfiguration
Sets the CallGraph to use for the analysis.
setDumpAnalysis(boolean) - Method in class it.unive.lisa.LiSAConfiguration
Sets whether or not dot files, named analysis__<cfg name>.dot, should be created and dumped in the working directory at the end of the analysis.
setDumpCFGs(boolean) - Method in class it.unive.lisa.LiSAConfiguration
Sets whether or not dot files, named <cfg name>.dot, should be created and dumped in the working directory at the start of the execution.
setDumpTypeInference(boolean) - Method in class it.unive.lisa.LiSAConfiguration
Sets whether or not dot files, named typing__<cfg name>.dot, should be created and dumped in the working directory at the end of the type inference.
setFirstFollower(Statement) - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Sets the first follower of this structure, that is, the first statement after the conditional structure exits.
setFixpointWorkingSet(Class<? extends WorkingSet<Statement>>) - Method in class it.unive.lisa.LiSAConfiguration
Sets the concrete class of WorkingSet to be used in fixpoints.
setId(String) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Sets the string meant to identify this specific result, based on how it has been produced.
setIndex(int) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Sets the index of this variable.
setInferTypes(boolean) - Method in class it.unive.lisa.LiSAConfiguration
Sets whether or not runtime types should be inferred before executing the semantic analysis.
setInterproceduralAnalysis(InterproceduralAnalysis<?, ?, ?>) - Method in class it.unive.lisa.LiSAConfiguration
Sets the InterproceduralAnalysis to use for the analysis.
setJsonOutput(boolean) - Method 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.
SetLattice<S extends SetLattice<S,​E>,​E> - Class in it.unive.lisa.analysis.lattices
A generic set lattice containing a set of elements.
SetLattice(Set<E>) - Constructor for class it.unive.lisa.analysis.lattices.SetLattice
Builds the lattice.
setMessage(String) - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
Sets the message of this warning.
setOffset(int) - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.BinaryExpression
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.Call
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.Literal
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.Ret
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.UnaryStatement
 
setOffset(int) - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
setOffset(int) - Method in interface it.unive.lisa.util.datastructures.graph.Node
Sets the offset of this node to the given value, and then proceeds by setting the one of its nested nodes (if any) to subsequent values.
setOriginatingStatement(Statement) - Method in interface it.unive.lisa.program.cfg.statement.PluggableStatement
Sets the original Statement that got rewritten by theis pluggable statement.
setOverridable(boolean) - Method in class it.unive.lisa.program.cfg.CFGDescriptor
Sets whether or not the cfg associated to this descriptor can be overridden.
setParentStatement(Statement) - Method in class it.unive.lisa.program.cfg.statement.Expression
Sets the Statement that contains this expression.
SetRepresentation - Class in it.unive.lisa.analysis.representation
A DomainRepresentation in the form of a set of values.
SetRepresentation(Set<E>, Function<E, DomainRepresentation>) - Constructor for class it.unive.lisa.analysis.representation.SetRepresentation
Builds a new representation starting from the given set.
SetRepresentation(Set<DomainRepresentation>) - Constructor for class it.unive.lisa.analysis.representation.SetRepresentation
Builds a new representation containing the given set.
setRuntimeTypes(ExternalSet<Type>) - Method in class it.unive.lisa.program.cfg.statement.Expression
Sets the runtime types of this expression.
setScopeEnd(Statement) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Sets the statement where this variable is last visible.
setScopeStart(Statement) - Method in class it.unive.lisa.program.cfg.VariableTableEntry
Sets the statement where this variable is first visible.
setWideningThreshold(int) - Method in class it.unive.lisa.LiSAConfiguration
Sets the number of fixpoint iteration on a given node after which calls to Lattice.lub(Lattice) gets replaced with Lattice.widening(Lattice).
setWorkdir(String) - Method in class it.unive.lisa.LiSAConfiguration
Sets the working directory for this instance of LiSA, that is, the directory files will be created, if any.
SHAPE - Static variable in class it.unive.lisa.outputs.DotGraph
The shape attribute name.
ShortAnnotationValue - Class in it.unive.lisa.program.annotations.values
A short annotation value.
ShortAnnotationValue(short) - Constructor for class it.unive.lisa.program.annotations.values.ShortAnnotationValue
Builds a short annotation value.
Sign - Class in it.unive.lisa.analysis.impl.numeric
The basic 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.impl.numeric.Sign
Builds the sign abstract domain, representing the top of the sign abstract domain.
SimpleAbstractState<H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.analysis
An abstract state of the analysis, composed by a heap state modeling the memory layout and a value state modeling values of program variables and memory locations.
SimpleAbstractState(H, V) - Constructor for class it.unive.lisa.analysis.SimpleAbstractState
Builds a new abstract state.
simplify() - Method in class it.unive.lisa.program.cfg.CFG
Simplifies this cfg, removing all NoOps and rewriting the edge set accordingly.
simplify() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
Simplifies this structure, removing all NoOps from its body.
simplify() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
simplify() - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
simplify(Class<? extends N>, Collection<E>, Map<Pair<E, E>, E>) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Simplifies the adjacency matrix beneath this graph, removing all nodes that are instances of <T> and rewriting the edge set accordingly.
simplify(Iterable<N>, Collection<N>, Collection<E>, Map<Pair<E, E>, E>) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Simplifies this matrix, removing all the given nodes and rewriting the edge set accordingly.
SingleScopeToken - Class in it.unive.lisa.interprocedural.impl
A context sensitive token representing a single ScopeToken.
size() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
Returns the number of elements in this lattice (its cardinality).
size() - Method in class it.unive.lisa.analysis.lattices.SetLattice
Returns the number of elements in this lattice (its cardinality).
size() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
size() - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
Yields the total number of elements stored in this cache.
size() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
size() - Method in class it.unive.lisa.util.collections.IterableArray
Yields the size of this iterable, that is, the length of the array behind this iterable.
size() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
size() - Method in interface it.unive.lisa.util.collections.workset.WorkingSet
Yields the size of this working set, that is, the number of elements contained in it.
Skip - Class in it.unive.lisa.symbolic.value
An expression that does nothing.
Skip(CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Skip
Builds the skip.
smallStepSemantics(E, ProgramPoint) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
smallStepSemantics(E, ProgramPoint) - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a copy of this domain, that has been modified accordingly to the semantics of the given expression.
smallStepSemantics(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.AnalysisState
 
smallStepSemantics(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
 
smallStepSemantics(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
smallStepSemantics(SymbolicExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
smallStepSemantics(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
smallStepSemantics(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
smallStepSemantics(ValueExpression, ProgramPoint) - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
SourceCodeLocation - Class in it.unive.lisa.program
A location of an element in the source code represented by the path to the source code, the line and the column where the element appears.
SourceCodeLocation(String, int, int) - Constructor for class it.unive.lisa.program.SourceCodeLocation
Builds the code element.
SPECIAL_NODE_COLOR - Static variable in class it.unive.lisa.outputs.DotGraph
The color of a special node (entry or exit).
Statement - Class in it.unive.lisa.program.cfg.statement
A statement of the program to analyze.
Statement(CFG, CodeLocation) - Constructor for class it.unive.lisa.program.cfg.statement.Statement
Builds a statement happening at the given source location.
StatementStore<A extends AbstractState<A,​H,​V>,​H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.analysis
A functional lattice that stores instances of AnalysisState computed on statements.
StatementStore(AnalysisState<A, H, V>) - Constructor for class it.unive.lisa.analysis.StatementStore
Builds the store.
StatementWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on a statement.
StatementWarning(Statement, String) - Constructor for class it.unive.lisa.checks.warnings.StatementWarning
Builds the warning.
STATIC_TYPES - it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
A strategy where the static types of the parameters of the call are evaluated against the signature of a cfg: for each parameter, if the static type of the actual parameter can be assigned to the type of the formal parameter, than UnresolvedCall.ResolutionStrategy.matches(Parameter[], Expression[]) return true.
stopsExecution() - Method in class it.unive.lisa.program.cfg.statement.Ret
 
stopsExecution() - Method in class it.unive.lisa.program.cfg.statement.Return
 
stopsExecution() - Method in class it.unive.lisa.program.cfg.statement.Statement
Whether or not this statement stops the execution of the containing cfg, either by throwing an error or returning a value.
stopsExecution() - Method in class it.unive.lisa.program.cfg.statement.Throw
 
STRING_CONCAT - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator return the concatenation of s1 with s2.
STRING_CONTAINS - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator checks whether s1 contains s2.
STRING_ENDS_WITH - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator checks whether s1 ends with s2, namely if s2 is the suffix of s1.
STRING_EQUALS - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator checks if the two strings are equals.
STRING_INDEX_OF - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator return the position of the first occurrence of s1 in s2.
STRING_LENGTH - it.unive.lisa.symbolic.value.UnaryOperator
Given a string of type StringType returns the length of that string.
STRING_REPLACE - it.unive.lisa.symbolic.value.TernaryOperator
Given an input string, a search string, and a replace string, all of type StringType, this operator returns the input string where all the occurrences of the search string are replaced with the replace string.
STRING_STARTS_WITH - it.unive.lisa.symbolic.value.BinaryOperator
Given two string values s1 and s2 of type StringType, this operator checks whether s1 starts with s2, namely if s2 is the prefix of s1.
STRING_SUBSTRING - it.unive.lisa.symbolic.value.TernaryOperator
Given a string s of type StringType and two unsigned integers i and j of type NumericType, returns the the substring between i and j (excluded) of the input string.
StringAnnotationValue - Class in it.unive.lisa.program.annotations.values
A string annotation value.
StringAnnotationValue(String) - Constructor for class it.unive.lisa.program.annotations.values.StringAnnotationValue
Builds a string annotation value.
StringRepresentation - Class in it.unive.lisa.analysis.representation
A DomainRepresentation in the form of a single string element.
StringRepresentation(Object) - Constructor for class it.unive.lisa.analysis.representation.StringRepresentation
Builds a new representation starting from the given object.
StringRepresentation(String) - Constructor for class it.unive.lisa.analysis.representation.StringRepresentation
Builds a new representation containing the given string.
StringType - Class in it.unive.lisa.symbolic.types
An internal implementation of the StringType interface that can be used by domains that need a concrete instance of that interface.
StringType - Interface in it.unive.lisa.type
String type interface.
STYLE - Static variable in class it.unive.lisa.outputs.DotGraph
The style attribute name.
subtract(MathNumber) - Method in class it.unive.lisa.util.numeric.MathNumber
Yields the result of this - other.
SymbolicExpression - Class in it.unive.lisa.symbolic
A symbolic expression that can be evaluated by SemanticDomains.
SymbolicExpression(ExternalSet<Type>, CodeLocation) - Constructor for class it.unive.lisa.symbolic.SymbolicExpression
Builds the symbolic expression.
SyntacticCheck - Interface in it.unive.lisa.checks.syntactic
A Check that is able to exploit only the syntactic structure of the program.
SyntheticLocation - Class in it.unive.lisa.program
A synthetic code location.

T

TernaryExpression - Class in it.unive.lisa.symbolic.value
A bynary expression that applies a TernaryExpression to three SymbolicExpressions.
TernaryExpression(ExternalSet<Type>, SymbolicExpression, SymbolicExpression, SymbolicExpression, TernaryOperator, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.TernaryExpression
Builds the binary expression.
TernaryNativeCall - Class in it.unive.lisa.program.cfg.statement
A NativeCall with a exactly three arguments.
TernaryNativeCall(CFG, CodeLocation, String, Expression, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.TernaryNativeCall
Builds the untyped native call, happening at the given location in the program.
TernaryNativeCall(CFG, CodeLocation, String, Type, Expression, Expression, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.TernaryNativeCall
Builds the native call, happening at the given location in the program.
TernaryOperator - Enum in it.unive.lisa.symbolic.value
A ternary operator that can be applied to a triple of SymbolicExpressions.
ternarySemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>, SymbolicExpression, AnalysisState<A, H, V>, SymbolicExpression, AnalysisState<A, H, V>, SymbolicExpression) - Method in class it.unive.lisa.program.cfg.statement.TernaryNativeCall
Computes the semantics of the call, after the semantics of the parameters have been computed.
Throw - Class in it.unive.lisa.program.cfg.statement
A statement that raises an error, stopping the execution of the current CFG and propagating the error to among the call chain.
Throw(CFG, CodeLocation, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.Throw
Builds the throw, raising expression as error, happening at the given location in the program.
throwsError() - Method in class it.unive.lisa.program.cfg.statement.Statement
Whether or not this statement throws an error, halting the normal execution of the containing cfg.
throwsError() - Method in class it.unive.lisa.program.cfg.statement.Throw
 
TimeFormat - Enum in it.unive.lisa.logging
Time formatting utility.
TimerLogger - Class in it.unive.lisa.logging
An utility class that allows automatic logging of the execution time of a method.
TimerLogger.LoggableAction - Interface in it.unive.lisa.logging
A Runnable executing a function with no arguments a no return value.
TimerLogger.LoggableSupplier<R> - Interface in it.unive.lisa.logging
A Supplier producing one element.
toArray() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
toArray() - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
toArray(E[]) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
toArray(E[]) - Method in class it.unive.lisa.util.collections.externalSet.UniversalExternalSet
 
toDot(Function<CallGraphNode, String>) - Method in class it.unive.lisa.interprocedural.callgraph.BaseCallGraph
 
toDot(Function<Statement, String>) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
toDot(Function<Statement, String>) - Method in class it.unive.lisa.program.cfg.CFG
 
toDot(Function<N, String>) - Method in class it.unive.lisa.util.datastructures.graph.Graph
Converts this graph to a DotGraph instance.
top() - Method in class it.unive.lisa.analysis.AnalysisState
 
top() - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
top() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
top() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
top() - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
top() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
top() - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
top() - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
top() - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
top() - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
top() - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
top() - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
top() - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
top() - Method in interface it.unive.lisa.analysis.Lattice
Yields the top element of this lattice.
top() - Method in class it.unive.lisa.analysis.lattices.ExpressionSet
 
top() - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
top() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
top() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
top() - Method in class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
 
top() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
 
top() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
top() - Method in class it.unive.lisa.analysis.StatementStore
 
top() - Method in class it.unive.lisa.analysis.types.InferredTypes
 
top() - Method in class it.unive.lisa.interprocedural.impl.CFGResults
 
top() - Method in class it.unive.lisa.interprocedural.impl.FixpointResults
 
TOP_REPR - Static variable in interface it.unive.lisa.analysis.Lattice
A DomainRepresentation that can be used to represent top values.
TOP_STRING - Static variable in interface it.unive.lisa.analysis.Lattice
A string constant that can be used to represent top values.
toString() - Method in class it.unive.lisa.analysis.AnalysisState
 
toString() - Method in class it.unive.lisa.analysis.BaseLattice
 
toString() - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
toString() - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
toString() - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain
 
toString() - Method in class it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
 
toString() - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
toString() - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
toString() - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
toString() - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
toString() - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
toString() - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.inference.BaseInferredValue
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPairRepresentation
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
toString() - Method in class it.unive.lisa.analysis.representation.DomainRepresentation
 
toString() - Method in class it.unive.lisa.analysis.representation.MapRepresentation
 
toString() - Method in class it.unive.lisa.analysis.representation.PairRepresentation
 
toString() - Method in class it.unive.lisa.analysis.representation.SetRepresentation
 
toString() - Method in class it.unive.lisa.analysis.representation.StringRepresentation
 
toString() - Method in class it.unive.lisa.analysis.ScopeToken
 
toString() - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
toString() - Method in class it.unive.lisa.checks.warnings.CFGDescriptorWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.GlobalWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.UnitWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.Warning
 
toString() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
 
toString() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphEdge
 
toString() - Method in class it.unive.lisa.interprocedural.callgraph.CallGraphNode
 
toString() - Method in class it.unive.lisa.interprocedural.impl.ContextInsensitiveToken
 
toString() - Method in class it.unive.lisa.interprocedural.impl.RecursionFreeToken
 
toString() - Method in class it.unive.lisa.interprocedural.impl.SingleScopeToken
 
toString() - Method in class it.unive.lisa.LiSAConfiguration
 
toString() - Method in class it.unive.lisa.LiSAFactory.ConfigurableComponent
 
toString() - Method in class it.unive.lisa.outputs.DotGraph
 
toString() - Method in class it.unive.lisa.outputs.JsonReport.JsonWarning
 
toString() - Method in class it.unive.lisa.outputs.JsonReport
 
toString() - Method in class it.unive.lisa.program.annotations.Annotation
 
toString() - Method in class it.unive.lisa.program.annotations.AnnotationMember
 
toString() - Method in class it.unive.lisa.program.annotations.Annotations
 
toString() - Method in class it.unive.lisa.program.annotations.values.ArrayAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.BoolAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.ByteAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.CharAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.CompilationUnitAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.DoubleAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.EnumAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.FloatAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.IntAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.LongAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.ShortAnnotationValue
 
toString() - Method in class it.unive.lisa.program.annotations.values.StringAnnotationValue
 
toString() - Method in class it.unive.lisa.program.cfg.CFG
 
toString() - Method in class it.unive.lisa.program.cfg.CFGDescriptor
 
toString() - Method in class it.unive.lisa.program.cfg.controlFlow.ControlFlowStructure
 
toString() - Method in class it.unive.lisa.program.cfg.controlFlow.IfThenElse
 
toString() - Method in class it.unive.lisa.program.cfg.controlFlow.Loop
 
toString() - Method in class it.unive.lisa.program.cfg.edge.Edge
 
toString() - Method in class it.unive.lisa.program.cfg.edge.FalseEdge
 
toString() - Method in class it.unive.lisa.program.cfg.edge.SequentialEdge
 
toString() - Method in class it.unive.lisa.program.cfg.edge.TrueEdge
 
toString() - Method in class it.unive.lisa.program.cfg.Parameter
 
toString() - Method in class it.unive.lisa.program.cfg.statement.AccessGlobal
 
toString() - Method in class it.unive.lisa.program.cfg.statement.AccessInstanceGlobal
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Assignment
 
toString() - Method in class it.unive.lisa.program.cfg.statement.CFGCall
 
toString() - Method in class it.unive.lisa.program.cfg.statement.HybridCall
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Literal
 
toString() - Method in class it.unive.lisa.program.cfg.statement.NativeCall
 
toString() - Method in class it.unive.lisa.program.cfg.statement.NoOp
 
toString() - Method in class it.unive.lisa.program.cfg.statement.NullLiteral
 
toString() - Method in class it.unive.lisa.program.cfg.statement.OpenCall
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Ret
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Return
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Statement
 
toString() - Method in class it.unive.lisa.program.cfg.statement.Throw
 
toString() - Method in class it.unive.lisa.program.cfg.statement.UnresolvedCall
 
toString() - Method in class it.unive.lisa.program.cfg.statement.VariableRef
 
toString() - Method in class it.unive.lisa.program.cfg.VariableTableEntry
 
toString() - Method in class it.unive.lisa.program.Global
 
toString() - Method in class it.unive.lisa.program.SourceCodeLocation
 
toString() - Method in class it.unive.lisa.program.Unit
 
toString() - Method in class it.unive.lisa.symbolic.heap.AccessChild
 
toString() - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
toString() - Method in class it.unive.lisa.symbolic.heap.HeapDereference
 
toString() - Method in class it.unive.lisa.symbolic.heap.HeapReference
 
toString() - Method in class it.unive.lisa.symbolic.SymbolicExpression
 
toString() - Method in class it.unive.lisa.symbolic.types.BoolType
 
toString() - Method in class it.unive.lisa.symbolic.types.IntType
 
toString() - Method in class it.unive.lisa.symbolic.types.StringType
 
toString() - Method in class it.unive.lisa.symbolic.value.BinaryExpression
 
toString() - Method in enum it.unive.lisa.symbolic.value.BinaryOperator
 
toString() - Method in class it.unive.lisa.symbolic.value.Constant
 
toString() - Method in class it.unive.lisa.symbolic.value.HeapLocation
 
toString() - Method in class it.unive.lisa.symbolic.value.MemoryPointer
 
toString() - Method in class it.unive.lisa.symbolic.value.NullConstant
 
toString() - Method in class it.unive.lisa.symbolic.value.OutOfScopeIdentifier
 
toString() - Method in class it.unive.lisa.symbolic.value.PushAny
 
toString() - Method in class it.unive.lisa.symbolic.value.Skip
 
toString() - Method in class it.unive.lisa.symbolic.value.TernaryExpression
 
toString() - Method in enum it.unive.lisa.symbolic.value.TernaryOperator
 
toString() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
toString() - Method in enum it.unive.lisa.symbolic.value.UnaryOperator
 
toString() - Method in class it.unive.lisa.symbolic.value.Variable
 
toString() - Method in class it.unive.lisa.type.NullType
 
toString() - Method in class it.unive.lisa.type.TypeTokenType
 
toString() - Method in class it.unive.lisa.type.Untyped
 
toString() - Method in class it.unive.lisa.type.VoidType
 
toString() - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
toString() - Method in class it.unive.lisa.util.collections.externalSet.ExternalSetCache
 
toString() - Method in class it.unive.lisa.util.collections.IterableArray
 
toString() - Method in class it.unive.lisa.util.collections.workset.ConcurrentFIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.collections.workset.ConcurrentLIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.collections.workset.FIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.collections.workset.LIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.collections.workset.VisitOnceWorkingSet
 
toString() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix.NodeEdges
 
toString() - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
 
toString() - Method in class it.unive.lisa.util.datastructures.graph.Graph
 
toString() - Method in class it.unive.lisa.util.numeric.IntInterval
 
toString() - Method in class it.unive.lisa.util.numeric.MathNumber
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.impl.dataflow.AvailableExpressions
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.impl.dataflow.ConstantPropagation
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.impl.dataflow.ReachingDefinitions
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.AllocationSites
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain
 
tracksIdentifiers(Identifier) - Method in interface it.unive.lisa.analysis.SemanticEvaluator
Yields true if the domain tracks information on the identifier id, false otherwise.
tracksIdentifiers(Identifier) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
transform(UnaryOperator<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Transforms this set into another set where each element is obtained by transforming elements of this set.
traverse(E, T) - Method in interface it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint.FixpointImplementation
Given an edge and a state, computes a new state by modifying the given one assuming that the edge gets traversed.

This callback is invoked while computing the overall entry state for a node to filter a state according to the logic of the edge (an edge might be always traversed, or only if a condition holds).
traverse(AnalysisState<A, H, V>) - Method in class it.unive.lisa.program.cfg.edge.Edge
Traverses this edge, optionally modifying the given sourceState by applying semantic assumptions.
traverse(AnalysisState<A, H, V>) - Method in class it.unive.lisa.program.cfg.edge.FalseEdge
 
traverse(AnalysisState<A, H, V>) - Method in class it.unive.lisa.program.cfg.edge.SequentialEdge
 
traverse(AnalysisState<A, H, V>) - Method in class it.unive.lisa.program.cfg.edge.TrueEdge
 
TrueEdge - Class in it.unive.lisa.program.cfg.edge
An edge connecting two statements, that is traversed when the condition expressed in the source state holds.
TrueEdge(Statement, Statement) - Constructor for class it.unive.lisa.program.cfg.edge.TrueEdge
Builds the edge.
Type - Interface in it.unive.lisa.type
Type interface.
TYPE_CAST - it.unive.lisa.symbolic.value.BinaryOperator
Casts the type of the left-hand side of this expression to the type of the right-hand side.
TYPE_CHECK - it.unive.lisa.symbolic.value.BinaryOperator
Tests if the type of the left-hand side of this expression is the same as, or a subtype of, the type of the right-hand side.
TYPE_CONV - it.unive.lisa.symbolic.value.BinaryOperator
Converts the type of the left-hand side of this expression to the type of the right-hand side.
TypeBasedHeap - Class in it.unive.lisa.analysis.impl.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.impl.heap.TypeBasedHeap
Builds a new instance of TypeBasedHeap, with an unique rewritten expression Skip.
TYPEOF - it.unive.lisa.symbolic.value.UnaryOperator
Yields the Type of an expression.
types() - Static method in class it.unive.lisa.caches.Caches
Yields the globally defined cache for ExternalSets containing Types.
TypeTokenType - Class in it.unive.lisa.type
The type of type tokens, used as reference to types in code.
TypeTokenType(ExternalSet<Type>) - Constructor for class it.unive.lisa.type.TypeTokenType
Builds the type token representing the given types.

U

UnaryExpression - Class in it.unive.lisa.symbolic.value
A unary expression that applies a UnaryOperator to a SymbolicExpression.
UnaryExpression(ExternalSet<Type>, SymbolicExpression, UnaryOperator, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.UnaryExpression
Builds the unary expression.
UnaryNativeCall - Class in it.unive.lisa.program.cfg.statement
A NativeCall with a single argument.
UnaryNativeCall(CFG, CodeLocation, String, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.UnaryNativeCall
Builds the untyped native call, happening at the given location in the program.
UnaryNativeCall(CFG, CodeLocation, String, Type, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.UnaryNativeCall
Builds the native call, happening at the given location in the program.
UnaryOperator - Enum in it.unive.lisa.symbolic.value
A unary operator that can be applied to a single SymbolicExpression.
unarySemantics(AnalysisState<A, H, V>, InterproceduralAnalysis<A, H, V>, AnalysisState<A, H, V>, SymbolicExpression) - Method in class it.unive.lisa.program.cfg.statement.UnaryNativeCall
Computes the semantics of the call, after the semantics of the parameter has been computed.
UnaryStatement - Class in it.unive.lisa.program.cfg.statement
A unary statement.
UnaryStatement(CFG, CodeLocation, Expression) - Constructor for class it.unive.lisa.program.cfg.statement.UnaryStatement
Builds the unary statement, happening at the given location in the program.
union(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.externalSet.BitExternalSet
 
union(ExternalSet<T>) - Method in interface it.unive.lisa.util.collections.externalSet.ExternalSet
Yields the union of this set and another.
union(N, T, T) - Method in interface it.unive.lisa.util.datastructures.graph.algorithms.Fixpoint.FixpointImplementation
Given a node and two states, computes their union (i.e.
Unit - Class in it.unive.lisa.program
A unit of the program to analyze.
Unit(String) - Constructor for class it.unive.lisa.program.Unit
Builds a unit, defined at the given location.
UnitType - Interface in it.unive.lisa.type
Interface for types that are introduced by a CompilationUnit.
UnitWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on one of the Units under analysis.
UnitWarning(Unit, String) - Constructor for class it.unive.lisa.checks.warnings.UnitWarning
Builds the warning.
UniversalExternalSet<T> - Class in it.unive.lisa.util.collections.externalSet
An ExternalSet that always stays up-to-date with the contents of the underlying factory, but that cannot be modified.
UNKNOWN - it.unive.lisa.analysis.SemanticDomain.Satisfiability
Represent the fact that it is not possible to determine whether or not an expression is satisfied.
UnresolvedCall - Class in it.unive.lisa.program.cfg.statement
A call that happens inside the program to analyze.
UnresolvedCall(CFG, CodeLocation, UnresolvedCall.ResolutionStrategy, boolean, String, Expression...) - Constructor for class it.unive.lisa.program.cfg.statement.UnresolvedCall
Builds the CFG call, happening at the given location in the program.
UnresolvedCall.ResolutionStrategy - Enum in it.unive.lisa.program.cfg.statement
An enum defining the different types of resolution strategies for call signatures.
Untyped - Class in it.unive.lisa.type
The untyped type, corresponding to an unknown/untyped type.
UP_TO_HOURS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as hours, minutes, seconds, milliseconds and nanoseconds.
UP_TO_MILLIS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as milliseconds and nanoseconds.
UP_TO_MINUTES - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as minutes, seconds, milliseconds and nanoseconds.
UP_TO_SECONDS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as seconds, milliseconds and nanoseconds.

V

validate() - Method in class it.unive.lisa.program.cfg.CFG
Validates this cfg, ensuring that the code contained in it is well formed.
validate(Collection<N>) - Method in class it.unive.lisa.util.datastructures.graph.AdjacencyMatrix
Validates this matrix, ensuring that the it is well formed.
validateAndFinalize() - Method in class it.unive.lisa.program.CompilationUnit
Validates this unit, ensuring its consistency.
validateAndFinalize() - Method in class it.unive.lisa.program.Program
Validates this unit, ensuring its consistency.
validateAndFinalize() - Method in class it.unive.lisa.program.Unit
Validates this unit, ensuring its consistency.
value() - Method in annotation type it.unive.lisa.DefaultImplementation
The class of the default implementation of the annotated analysis component.
value() - Method in annotation type it.unive.lisa.DefaultParameters
The default classes of each parameter.
ValueCartesianProduct<T1 extends ValueDomain<T1>,​T2 extends 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.
ValueDomain<D extends ValueDomain<D>> - Interface in it.unive.lisa.analysis.value
A semantic domain that can evaluate the semantic of statements that operate on values, and not on memory locations.
ValueEnvironment<T extends NonRelationalValueDomain<T>> - Class in it.unive.lisa.analysis.nonrelational.value
An environment for a NonRelationalValueDomain, that maps Identifiers to instances of such domain.
ValueEnvironment(T) - Constructor for class it.unive.lisa.analysis.nonrelational.value.ValueEnvironment
Builds an empty environment.
ValueExpression - Class in it.unive.lisa.symbolic.value
A symbolic expression that represents an operation on the program's state.
ValueExpression(ExternalSet<Type>, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.ValueExpression
Builds the heap expression.
valueOf(String) - Static method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.logging.TimeFormat
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.outputs.compare.JsonReportComparer.REPORT_TYPE
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.outputs.compare.JsonReportComparer.REPORTED_COMPONENT
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.symbolic.value.BinaryOperator
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.symbolic.value.TernaryOperator
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum it.unive.lisa.symbolic.value.UnaryOperator
Returns the enum constant of this type with the specified name.
values() - Static method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.logging.TimeFormat
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.outputs.compare.JsonReportComparer.REPORT_TYPE
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.outputs.compare.JsonReportComparer.REPORTED_COMPONENT
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.program.cfg.statement.UnresolvedCall.ResolutionStrategy
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.symbolic.value.BinaryOperator
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.symbolic.value.TernaryOperator
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum it.unive.lisa.symbolic.value.UnaryOperator
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.impl.nonInterference.NonInterference
 
variable(Identifier, ProgramPoint) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
Yields a fixed abstraction of the given variable.
Variable - Class in it.unive.lisa.symbolic.value
An identifier of a real program variable.
Variable(ExternalSet<Type>, String, Annotations, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Variable
Builds the variable with annotations.
Variable(ExternalSet<Type>, String, CodeLocation) - Constructor for class it.unive.lisa.symbolic.value.Variable
Builds the variable.
VariableRef - Class in it.unive.lisa.program.cfg.statement
A reference to a variable of the current CFG, identified by its name.
VariableRef(CFG, CodeLocation, String) - Constructor for class it.unive.lisa.program.cfg.statement.VariableRef
Builds the untyped variable reference, identified by its name.
VariableRef(CFG, CodeLocation, String, Type) - Constructor for class it.unive.lisa.program.cfg.statement.VariableRef
Builds the variable reference, identified by its name, happening at the given location in the program.
VariableTableEntry - Class in it.unive.lisa.program.cfg
An entry in the variable table representing a CFG variable identified by its index, containing the information about the source file, line and column where the variable is defined.
VariableTableEntry(CodeLocation, int, Statement, Statement, String) - Constructor for class it.unive.lisa.program.cfg.VariableTableEntry
Builds an untyped variable table entry, identified by its index.
VariableTableEntry(CodeLocation, int, Statement, Statement, String, Type) - Constructor for class it.unive.lisa.program.cfg.VariableTableEntry
Builds the variable table entry, identified by its index, representing a variable defined at the given location in the program.
VariableTableEntry(CodeLocation, int, Statement, Statement, String, Type, Annotations) - Constructor for class it.unive.lisa.program.cfg.VariableTableEntry
Builds the variable table entry with its annotations, identified by its index, representing a variable defined at the given location in the program.
VariableTableEntry(CodeLocation, int, String) - Constructor for class it.unive.lisa.program.cfg.VariableTableEntry
Builds an untyped variable table entry, identified by its index.
visit(AccessChild, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.Rewriter
 
visit(AccessChild, T, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits an AccessChild.
visit(HeapAllocation, Object...) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapAllocation, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a HeapAllocation.
visit(HeapDereference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapDereference, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a HeapDereference.
visit(HeapReference, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.Rewriter
 
visit(HeapReference, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a HeapReference.
visit(BinaryExpression, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(BinaryExpression, T, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
visit(Constant, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(Constant, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a Constant.
visit(Identifier, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(Identifier, Object...) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap.Rewriter
 
visit(Identifier, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits an Identifier.
visit(PushAny, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(PushAny, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a PushAny.
visit(Skip, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(Skip, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a Skip.
visit(TernaryExpression, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(TernaryExpression, T, T, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
visit(UnaryExpression, ExpressionSet<ValueExpression>, Object...) - Method in class it.unive.lisa.analysis.heap.BaseHeapDomain.Rewriter
 
visit(UnaryExpression, T, Object...) - Method in interface it.unive.lisa.symbolic.ExpressionVisitor
Visits a UnaryExpression.
visit(V, G) - Method in interface it.unive.lisa.util.datastructures.graph.GraphVisitor
Visits a graph, inspecting its structure and signature, but without accessing its contents.
visit(V, G, E) - Method in interface it.unive.lisa.util.datastructures.graph.GraphVisitor
Visits an edge of the given graph.
visit(V, G, N) - Method in interface it.unive.lisa.util.datastructures.graph.GraphVisitor
Visits a node of the given graph.
visitCompilationUnit(T, CompilationUnit) - Method in interface it.unive.lisa.checks.Check
Visits the given compilation unit.
visitGlobal(T, Unit, Global, boolean) - Method in interface it.unive.lisa.checks.Check
Visits the given global.
VisitOnceWorkingSet<E> - Class in it.unive.lisa.util.collections.workset
A working set that guarantees that each element will be added to this working set no more than once.
VoidType - Class in it.unive.lisa.type
The void type.

W

warn(String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning that is meant to be a generic warning on the program.
Warning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on the program under analysis.
Warning(String) - Constructor for class it.unive.lisa.checks.warnings.Warning
Builds the warning.
WARNINGS - it.unive.lisa.outputs.compare.JsonReportComparer.REPORTED_COMPONENT
Indicates that the difference was found in the collection of generated warnings.
WarningWithLocation - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on the program under analysis.
WarningWithLocation(CodeLocation, String) - Constructor for class it.unive.lisa.checks.warnings.WarningWithLocation
Builds the warning.
warnOn(CFGDescriptor, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the declaration of the cfg represented by the given descriptor.
warnOn(CFG, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the declaration of the given cfg.
warnOn(Expression, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the given expression.
warnOn(Statement, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the given statement.
warnOn(Unit, Global, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the declaration of the given global.
warnOn(Unit, String) - Method in class it.unive.lisa.checks.syntactic.CheckTool
Reports a new warning with the given message on the declaration of the given unit.
widening(C) - Method in class it.unive.lisa.analysis.combination.CartesianProduct
 
widening(CFGWithAnalysisResults<A, H, V>) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
 
widening(L) - Method in class it.unive.lisa.analysis.BaseLattice
 
widening(L) - Method in interface it.unive.lisa.analysis.Lattice
Performs the widening operation between this lattice element and the given one.
wideningAux(D) - Method in class it.unive.lisa.analysis.dataflow.DataflowDomain
 
wideningAux(F) - Method in class it.unive.lisa.analysis.lattices.FunctionalLattice
 
wideningAux(AnalysisState<A, H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
wideningAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.impl.heap.MonolithicHeap
 
wideningAux(PointBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.pointbased.PointBasedHeap
 
wideningAux(TypeBasedHeap) - Method in class it.unive.lisa.analysis.impl.heap.TypeBasedHeap
 
wideningAux(NonInterference) - Method in class it.unive.lisa.analysis.impl.nonInterference.NonInterference
 
wideningAux(IntegerConstantPropagation) - Method in class it.unive.lisa.analysis.impl.numeric.IntegerConstantPropagation
 
wideningAux(Interval) - Method in class it.unive.lisa.analysis.impl.numeric.Interval
 
wideningAux(Parity) - Method in class it.unive.lisa.analysis.impl.numeric.Parity
 
wideningAux(Sign) - Method in class it.unive.lisa.analysis.impl.numeric.Sign
 
wideningAux(HeapEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment
 
wideningAux(InferenceSystem<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferenceSystem
 
wideningAux(InferredValue.InferredPair<T>) - Method in class it.unive.lisa.analysis.nonrelational.inference.InferredValue.InferredPair
 
wideningAux(SimpleAbstractState<H, V>) - Method in class it.unive.lisa.analysis.SimpleAbstractState
 
wideningAux(InferredTypes) - Method in class it.unive.lisa.analysis.types.InferredTypes
 
wideningAux(L) - Method in class it.unive.lisa.analysis.BaseLattice
Performs the widening operation between this lattice element and the given one, assuming that base cases have already been handled.
wideningAux(S) - Method in class it.unive.lisa.analysis.lattices.InverseSetLattice
 
wideningAux(S) - Method in class it.unive.lisa.analysis.lattices.SetLattice
 
WorkingSet<E> - Interface in it.unive.lisa.util.collections.workset
A working set, containing items to be processed.

Z

ZERO - Static variable in class it.unive.lisa.util.numeric.IntInterval
The interval [0, 0].
ZERO - Static variable in class it.unive.lisa.util.numeric.MathNumber
The constant 0.
A B C D E F G H I J K L M N O P R S T U V W Z 
All Classes All Packages