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

A

AbstractState<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.
AbstractState(H, V) - Constructor for class it.unive.lisa.analysis.AbstractState
Builds a new abstract state.
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) - Constructor for class it.unive.lisa.symbolic.heap.AccessChild
Builds the child access.
add(T) - Method in class it.unive.lisa.util.collections.ExternalSet
 
addAll(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Adds to this set all elements contained into other.
addAll(Collection<? extends T>) - Method in class it.unive.lisa.util.collections.ExternalSet
 
addCFG(CFG) - Method in interface it.unive.lisa.callgraph.CallGraph
Adds a new cfg to this call graph.
addCFG(CFG) - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
addCFG(CFG) - Method in class it.unive.lisa.LiSA
Adds the given cfg to the ones under analysis.
addCFGs(Collection<CFG>) - Method in class it.unive.lisa.LiSA
Adds the given cfgs to the ones under analysis.
addEdge(Edge) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Adds an edge to this matrix.
addEdge(Edge) - Method in class it.unive.lisa.cfg.CFG
Adds an edge to this control flow graph.
addHeapDomain(T) - Method in class it.unive.lisa.LiSA
Adds a new HeapDomain to execute during the analysis.
addNode(Statement) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Adds the given node to the set of nodes.
addNode(Statement) - Method in class it.unive.lisa.cfg.CFG
Adds the given node to the set of nodes, optionally setting that as root.
addNode(Statement, boolean) - Method in class it.unive.lisa.cfg.CFG
Adds the given node to the set of nodes, optionally marking this as entrypoint (that is, reachable executable from other cfgs).
addNonRelationalHeapDomain(T) - Method in class it.unive.lisa.LiSA
Adds a new NonRelationalHeapDomain to execute during the analysis.
addNonRelationalValueDomain(T) - Method in class it.unive.lisa.LiSA
Adds a new NonRelationalValueDomain to execute during the analysis.
addSource(Identifier) - Method in class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
Adds an Identifier to the set of identifiers that are the sources of this replacement.
addSyntacticCheck(SyntacticCheck) - Method in class it.unive.lisa.LiSA
Adds the given syntactic check to the ones that will be executed.
addSyntacticChecks(Collection<SyntacticCheck>) - Method in class it.unive.lisa.LiSA
Adds the given syntactic checks to the ones that will be executed.
addTarget(Identifier) - Method in class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
Adds an Identifier to the set of identifiers that are the targets of this replacement.
addValueDomain(T) - Method in class it.unive.lisa.LiSA
Adds a new ValueDomain to execute during the analysis.
AdjacencyMatrix - Class in it.unive.lisa.cfg
An adjacency matrix for a graph that has Statements as nodes and Edges as edges.
AdjacencyMatrix() - Constructor for class it.unive.lisa.cfg.AdjacencyMatrix
Builds a new matrix.
AdjacencyMatrix(AdjacencyMatrix) - Constructor for class it.unive.lisa.cfg.AdjacencyMatrix
Copies the given matrix by keeping the same edge ExternalSetCache, shallow-copying the Statements and deep-copying the values.
afterExecution(CheckTool) - Method in interface it.unive.lisa.checks.syntactic.SyntacticCheck
Callback invoked only once after the end of the inspection of the program.
allMatch(Predicate<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields true iff all the elements contained in this set satisfy the given predicate.
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.
AnalysisState<H extends HeapDomain<H>,​V extends ValueDomain<V>> - Class in it.unive.lisa.analysis
The abstract analysis state at a given program point.
AnalysisState(AbstractState<H, V>, SymbolicExpression) - Constructor for class it.unive.lisa.analysis.AnalysisState
Builds a new state.
AnalysisState(AbstractState<H, V>, Collection<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.
anyMatch(Predicate<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields true iff at least one element contained in this set satisfies the given predicate.
applySubstitution(List<HeapSemanticOperation.HeapReplacement>) - Method in interface it.unive.lisa.analysis.ValueDomain
Applies a substitution of identifiers that is caused by a modification of the abstraction provided in the HeapDomain of the analysis.
ArrayType - Interface in it.unive.lisa.cfg.type
Array type interface.
asArrayType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a ArrayType, only if Type.isArrayType() yields true.
asBooleanType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a BooleanType, only if Type.isBooleanType() yields true.
asNullType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a NullType, only if Type.isNullType() yields true.
asNumericType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a NumericType, only if Type.isNumericType() yields true.
asPointerType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a PointerType, only if Type.isPointerType() yields true.
assign(I, E) - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a copy of this domain, where id has been assigned to value.
assign(Identifier, SymbolicExpression) - Method in class it.unive.lisa.analysis.AbstractState
 
assign(Identifier, SymbolicExpression) - Method in class it.unive.lisa.analysis.AnalysisState
 
assign(Identifier, SymbolicExpression) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
assign(Identifier, SymbolicExpression) - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
assign(Identifier, ValueExpression) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
assign(Identifier, ValueExpression) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
Assignment - Class in it.unive.lisa.cfg.statement
A statement assigning the result of an expression to an assignable expression.
Assignment(CFG, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.Assignment
Builds the assignment, assigning expression to target.
Assignment(CFG, String, int, int, Expression, Expression) - Constructor for class it.unive.lisa.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.cfg.type.Type
Returns this type casted as a StringType, only if Type.isStringType() yields true.
assume(E) - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a copy of this domain, modified by assuming that the given expression holds.
assume(SymbolicExpression) - Method in class it.unive.lisa.analysis.AbstractState
 
assume(SymbolicExpression) - Method in class it.unive.lisa.analysis.AnalysisState
 
assume(SymbolicExpression) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
assume(SymbolicExpression) - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
assume(ValueExpression) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
assume(ValueExpression) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
asUntyped() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as an Untyped, only if Type.isUntyped() yields true.
asVoidType() - Method in interface it.unive.lisa.cfg.type.Type
Returns this type casted as a VoidType, only if Type.isVoidType() yields true.

B

BaseHeapDomain<H extends BaseHeapDomain<H>> - Class in it.unive.lisa.analysis
A base implementation of the HeapDomain interface, handling base cases of BaseHeapDomain.smallStepSemantics(SymbolicExpression).
BaseHeapDomain() - Constructor for class it.unive.lisa.analysis.BaseHeapDomain
 
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
Base implementation for NonRelationalValueDomains.
BaseNonRelationalValueDomain() - Constructor for class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
 
beforeExecution(CheckTool) - Method in interface it.unive.lisa.checks.syntactic.SyntacticCheck
Callback invoked only once before the beginning of the inspection of the program.
BinaryExpression - Class in it.unive.lisa.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, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryExpression
Builds the binary expression.
BinaryExpression(CFG, String, int, int, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryExpression
Builds the binary expression, happening at the given location in the program.
BinaryExpression(ExternalSet<Type>, SymbolicExpression, SymbolicExpression, BinaryOperator) - Constructor for class it.unive.lisa.symbolic.value.BinaryExpression
Builds the binary expression.
BinaryNativeCall - Class in it.unive.lisa.cfg.statement
A NativeCall with a exactly two arguments.
BinaryNativeCall(CFG, String, int, int, String, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryNativeCall
Builds the untyped native call, happening at the given location in the program.
BinaryNativeCall(CFG, String, int, int, String, Type, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryNativeCall
Builds the native call, happening at the given location in the program.
BinaryNativeCall(CFG, String, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryNativeCall
Builds the untyped native call.
BinaryNativeCall(CFG, String, Type, Expression, Expression) - Constructor for class it.unive.lisa.cfg.statement.BinaryNativeCall
Builds the native call.
BinaryOperator - Enum in it.unive.lisa.symbolic.value
A binary operator that can be applied to a pair of SymbolicExpressions.
binarySemantics(AnalysisState<H, V>, CallGraph, SymbolicExpression, SymbolicExpression) - Method in class it.unive.lisa.cfg.statement.BinaryNativeCall
Computes the semantics of the call, after the semantics of the parameters have been computed.
BooleanType - Interface in it.unive.lisa.cfg.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.AbstractState
 
bottom() - Method in class it.unive.lisa.analysis.AnalysisState
 
bottom() - Method in class it.unive.lisa.analysis.ExpressionStore
 
bottom() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
bottom() - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
 
bottom() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
bottom() - Method in interface it.unive.lisa.analysis.Lattice
Yields the bottom element of this lattice.
bottom() - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
bottom() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
bottom() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
 
BOTTOM - it.unive.lisa.analysis.SemanticDomain.Satisfiability
Represent the fact that the satisfiability evaluation resulted in an error.

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.
Caches() - Constructor for class it.unive.lisa.caches.Caches
 
Call - Class in it.unive.lisa.cfg.statement
A call to another procedure.
Call(CFG, String, int, int, Type, Expression...) - Constructor for class it.unive.lisa.cfg.statement.Call
Builds a call happening at the given source location.
CallGraph - Interface in it.unive.lisa.callgraph
A callgraph of the program to analyze, that knows how to resolve dynamic targets of UnresolvedCalls.
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.BinaryNativeCall
 
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.Call
Computes the semantics of the call, after the semantics of all parameters have been computed.
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.CFGCall
 
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.OpenCall
 
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.UnaryNativeCall
 
callSemantics(AnalysisState<H, V>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
 
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.BinaryNativeCall
 
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.Call
Infer the types of the call, after the types of all parameters have been inferred.
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.CFGCall
 
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.OpenCall
 
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.UnaryNativeCall
 
callTypeInference(AnalysisState<H, TypeEnvironment>, CallGraph, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.cfg.type.NullType
 
canBeAssignedTo(Type) - Method in interface it.unive.lisa.cfg.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.cfg.type.Untyped
 
canBeAssignedTo(Type) - Method in class it.unive.lisa.cfg.type.VoidType
 
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
 
CFG - Class in it.unive.lisa.cfg
A control flow graph, that has Statements as nodes and Edges as edges.
CFG(CFG) - Constructor for class it.unive.lisa.cfg.CFG
Clones the given control flow graph.
CFG(CFGDescriptor) - Constructor for class it.unive.lisa.cfg.CFG
Builds the control flow graph.
CFG(CFGDescriptor, Collection<Statement>, AdjacencyMatrix) - Constructor for class it.unive.lisa.cfg.CFG
Builds the control flow graph.
CFG.SemanticFunction<H extends HeapDomain<H>,​V extends ValueDomain<V>> - Interface in it.unive.lisa.cfg
A functional interface that can be used for compute the semantics of Statements, producing AnalysisStates.
CFGCall - Class in it.unive.lisa.cfg.statement
A call to one or more of the CFGs under analysis.
CFGCall(CFG, String, int, int, String, CFG, Expression...) - Constructor for class it.unive.lisa.cfg.statement.CFGCall
Builds the CFG call, happening at the given location in the program.
CFGCall(CFG, String, int, int, String, Collection<CFG>, Expression...) - Constructor for class it.unive.lisa.cfg.statement.CFGCall
Builds the CFG call, happening at the given location in the program.
CFGCall(CFG, String, CFG, Expression...) - Constructor for class it.unive.lisa.cfg.statement.CFGCall
Builds the CFG call.
CFGCall(CFG, String, Collection<CFG>, Expression...) - Constructor for class it.unive.lisa.cfg.statement.CFGCall
Builds the CFG call.
CFGDesccriptorWarning - Class in it.unive.lisa.checks.warnings
A warning reported by LiSA on the descriptor of one of the CFGs under analysis.
CFGDesccriptorWarning(CFGDescriptor, String) - Constructor for class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
Builds the warning.
CFGDescriptor - Class in it.unive.lisa.cfg
A descriptor of a CFG, containing the debug informations (source file, line, column) as well as metadata.
CFGDescriptor(String, int, int, String, Parameter...) - Constructor for class it.unive.lisa.cfg.CFGDescriptor
Builds the descriptor with Untyped return type.
CFGDescriptor(String, int, int, String, Type, Parameter...) - Constructor for class it.unive.lisa.cfg.CFGDescriptor
Builds the descriptor.
CFGDescriptor(String, Parameter...) - Constructor for class it.unive.lisa.cfg.CFGDescriptor
Builds the descriptor for a method that is defined at an unknown location (i.e.
CFGDescriptor(String, Type, Parameter...) - Constructor for class it.unive.lisa.cfg.CFGDescriptor
Builds the descriptor for a method that is defined at an unknown location (i.e.
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<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, Map<Statement, AnalysisState<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.
CheckTool - Class in it.unive.lisa.checks
An auxiliary tool that can be used by checks during their execution.
CheckTool() - Constructor for class it.unive.lisa.checks.CheckTool
Build the tool.
clear() - Method in interface it.unive.lisa.callgraph.CallGraph
Clears all the data from the last fixpoint computation, effectively re-initializing the call graph.
clear() - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
clear() - Method in class it.unive.lisa.util.collections.ExternalSet
Removes all elements from this set.
clearCreatedFiles() - Static method in class it.unive.lisa.util.file.FileManager
Clears the list of names of created files.
collect() - Method in class it.unive.lisa.util.collections.ExternalSet
Yields a concrete list containing all the elements corresponding to the bits in this set.
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.
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.cfg.type.NullType
 
commonSupertype(Type) - Method in interface it.unive.lisa.cfg.type.Type
Yields the most specific common supertype between this Type and the given one.
commonSupertype(Type) - Method in class it.unive.lisa.cfg.type.Untyped
 
commonSupertype(Type) - Method in class it.unive.lisa.cfg.type.VoidType
 
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
 
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(Statement) - Method in class it.unive.lisa.cfg.statement.Statement
Compares two statements in terms of order of appearance in the program, comparing source files first, followed by lines and columns at last.
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
compareTo(Warning) - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
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
 
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.
compute(Statement, AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in interface it.unive.lisa.cfg.CFG.SemanticFunction
Computes the semantics of the given Statement st, assuming that the entry state is entryState.
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.workset
A first-in, first-out working set.
ConcurrentLIFOWorkingSet<E> - Class in it.unive.lisa.util.workset
A last-in, first-out working set.
Constant - Class in it.unive.lisa.symbolic.value
A constant value.
Constant(Type, Object) - Constructor for class it.unive.lisa.symbolic.value.Constant
Builds the constant.
contains(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.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
 
containsAll(Collection<?>) - Method in class it.unive.lisa.util.collections.ExternalSet
 
copy() - Method in class it.unive.lisa.util.collections.ExternalSet
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() - Static method in class it.unive.lisa.util.file.FileManager
Yields the collection of file names that have been created by this manager from the last call to FileManager.clearCreatedFiles().

D

DEFAULT_WIDENING_THRESHOLD - Static variable in class it.unive.lisa.cfg.CFG
The default number of fixpoint iteration on a given statement after which calls to Lattice.lub(Lattice) gets replaced with Lattice.widening(Lattice).
difference(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields a new set obtained from this by removing the given elements.
DotGraph - Class in it.unive.lisa.outputs
A graph build from a CFG that can be dumped in dot format, together with a legend.
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, String) - Method in class it.unive.lisa.cfg.CFG
Dumps the content of this control flow graph in the given writer, formatted as a dot file.
dump(Writer, String, Function<Statement, String>) - Method in class it.unive.lisa.cfg.CFG
Dumps the content of this control flow 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.

E

Edge - Class in it.unive.lisa.cfg.edge
An edge of a control flow graph, connecting two statements.
Edge(Statement, Statement) - Constructor for class it.unive.lisa.cfg.edge.Edge
Builds the edge.
elements - Variable in class it.unive.lisa.analysis.InverseSetLattice
The set of elements contained in the lattice.
elements - Variable in class it.unive.lisa.analysis.SetLattice
The set of elements contained in the lattice.
equals(Object) - Method in class it.unive.lisa.analysis.AbstractState
 
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.FunctionalLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
equals(Object) - Method in class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
 
equals(Object) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
equals(Object) - Method in class it.unive.lisa.analysis.InverseSetLattice
 
equals(Object) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
equals(Object) - Method in class it.unive.lisa.analysis.SetLattice
 
equals(Object) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
 
equals(Object) - Method in class it.unive.lisa.cfg.CFG
CFG instances use reference equality for equality checks, under the assumption that every cfg is unique.
equals(Object) - Method in class it.unive.lisa.cfg.CFGDescriptor
 
equals(Object) - Method in class it.unive.lisa.cfg.edge.Edge
 
equals(Object) - Method in class it.unive.lisa.cfg.Parameter
 
equals(Object) - Method in class it.unive.lisa.cfg.statement.Statement
All statements use reference equality for equality checks, to allow different statement with the same content but placed in different part of the cfg to being not equal if there are no debug information available.
equals(Object) - Method in class it.unive.lisa.cfg.type.NullType
 
equals(Object) - Method in class it.unive.lisa.cfg.type.Untyped
 
equals(Object) - Method in class it.unive.lisa.cfg.type.VoidType
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
equals(Object) - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
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.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.symbolic.heap.AccessChild
 
equals(Object) - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
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.Identifier
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.NullConstant
 
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.TypeConversion
 
equals(Object) - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
equals(Object) - Method in class it.unive.lisa.util.collections.ExternalSet
Determines if this set is equal to the given one, that is, if they share the cache (checked through reference equality) and contains the same elements.
eval(E, F) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalDomain
Evaluates a ValueExpression, assuming that the values of program variables are the ones stored in environment.
eval(ValueExpression, ValueEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
 
evalBinaryExpression(BinaryOperator, T, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the evaluation of a BinaryExpression applying operator to two expressions whose abstract value are left and right, respectively.
evalNonNullConstant(Constant) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the evaluation of the given non-null constant.
evalNullConstant() - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the evaluation of the null constant NullConstant.
evalTernaryExpression(TernaryOperator, T, T, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the evaluation of a TernaryExpression applying operator to two expressions whose abstract value are left, middle and right, respectively.
evalTypeConversion(Type, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the evaluation of a TypeConversion converting an expression whose abstract value is arg to the given Type.
evalUnaryExpression(UnaryOperator, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
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.
execConsumer(Logger, String, TimerLogger.LoggableBiConsumer<T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, String, TimerLogger.LoggableConsumer<T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, String, TimerLogger.LoggableMultiConsumer, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, String, TimerLogger.LoggablePentaConsumer<T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, String, TimerLogger.LoggableQuadConsumer<T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, String, TimerLogger.LoggableTriConsumer<T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggableBiConsumer<T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggableConsumer<T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggableMultiConsumer, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggablePentaConsumer<T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggableQuadConsumer<T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, TimeFormat, String, TimerLogger.LoggableTriConsumer<T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggableBiConsumer<T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggableConsumer<T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggableMultiConsumer, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggablePentaConsumer<T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggableQuadConsumer<T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execConsumer(Logger, Level, String, TimerLogger.LoggableTriConsumer<T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given consumer, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggableBiFunction<R, T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggableFunction<R, T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggableMultiFunction<R>, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggablePentaFunction<R, T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggableQuadFunction<R, T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, String, TimerLogger.LoggableTriFunction<R, T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggableBiFunction<R, T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggableFunction<R, T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggableMultiFunction<R>, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggablePentaFunction<R, T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggableQuadFunction<R, T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, TimeFormat, String, TimerLogger.LoggableTriFunction<R, T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggableBiFunction<R, T0, T1>, T0, T1) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggableFunction<R, T0>, T0) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggableMultiFunction<R>, Object...) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggablePentaFunction<R, T0, T1, T2, T3, T4>, T0, T1, T2, T3, T4) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggableQuadFunction<R, T0, T1, T2, T3>, T0, T1, T2, T3) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, while logging the time need for it to complete.
execFunction(Logger, Level, String, TimerLogger.LoggableTriFunction<R, T0, T1, T2>, T0, T1, T2) - Static method in class it.unive.lisa.logging.TimerLogger
Executes the given function, 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(CheckTool, Collection<CFG>, Collection<SyntacticCheck>) - Static method in class it.unive.lisa.checks.syntactic.SyntacticChecksExecutor
Executes all the given checks on the given inputs cfgs.
Expression - Class in it.unive.lisa.cfg.statement
An expression that is part of a statement of the program.
Expression(CFG, String, int, int) - Constructor for class it.unive.lisa.cfg.statement.Expression
Builds an untyped expression happening at the given source location, that is its type is Untyped.INSTANCE.
Expression(CFG, String, int, int, Type) - Constructor for class it.unive.lisa.cfg.statement.Expression
Builds a typed expression happening at the given source location.
ExpressionStore<V extends Lattice<V>> - Class in it.unive.lisa.analysis
A functional lattice that stores instances of Lattice computed on intermediate expressions inside root statements.
ExpressionStore(V) - Constructor for class it.unive.lisa.analysis.ExpressionStore
Builds the store.
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> - Class in it.unive.lisa.util.collections
A set of elements that are stored externally from this set.
ExternalSet(long[], ExternalSetCache<T>) - Constructor for class it.unive.lisa.util.collections.ExternalSet
Builds a set with the given bits and cache.
ExternalSet(ExternalSet<T>) - Constructor for class it.unive.lisa.util.collections.ExternalSet
Builds a clone of another set, connected to the same cache.
ExternalSet(ExternalSetCache<T>) - Constructor for class it.unive.lisa.util.collections.ExternalSet
Builds an empty set connected to the given cache.
ExternalSet(ExternalSetCache<T>, Iterable<T>) - Constructor for class it.unive.lisa.util.collections.ExternalSet
Builds a set containing all the elements of the given iterable and connected to the given cache.
ExternalSet(ExternalSetCache<T>, T) - Constructor for class it.unive.lisa.util.collections.ExternalSet
Builds a set containing exactly one element and connected to the given cache.
ExternalSetCache<T> - Class in it.unive.lisa.util.collections
A cache for creating ExternalSets of the elements contained in this cache.
ExternalSetCache() - Constructor for class it.unive.lisa.util.collections.ExternalSetCache
 

F

FalseEdge - Class in it.unive.lisa.cfg.edge
A sequential edge connecting two statements.
FalseEdge(Statement, Statement) - Constructor for class it.unive.lisa.cfg.edge.FalseEdge
Builds the edge.
FIFOWorkingSet<E> - Class in it.unive.lisa.util.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() - Constructor for class it.unive.lisa.util.file.FileManager
 
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 class it.unive.lisa.util.collections.ExternalSet
Yields a new external set containing only the elements of this set that satisfy the given predicate.
first() - Method in class it.unive.lisa.util.collections.ExternalSet
Yields the first element inside this set.
fixpoint(AnalysisState<H, V>, CallGraph, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(AnalysisState<H, V>, CallGraph, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(AnalysisState<H, V>, CallGraph, WorkingSet<Statement>, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(AnalysisState<H, V>, CallGraph, WorkingSet<Statement>, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(AnalysisState<H, V>, CFG.SemanticFunction<H, V>) - Method in interface it.unive.lisa.callgraph.CallGraph
Computes a fixpoint over the whole control flow graph, producing a CFGWithAnalysisResults for each CFG contained in this callgraph.
fixpoint(AnalysisState<H, V>, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
fixpoint(Collection<Statement>, AnalysisState<H, V>, CallGraph, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Collection<Statement>, AnalysisState<H, V>, CallGraph, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Collection<Statement>, AnalysisState<H, V>, CallGraph, WorkingSet<Statement>, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Collection<Statement>, AnalysisState<H, V>, CallGraph, WorkingSet<Statement>, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Map<Statement, AnalysisState<H, V>>, CallGraph, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Map<Statement, AnalysisState<H, V>>, CallGraph, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Map<Statement, AnalysisState<H, V>>, CallGraph, WorkingSet<Statement>, int, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
fixpoint(Map<Statement, AnalysisState<H, V>>, CallGraph, WorkingSet<Statement>, CFG.SemanticFunction<H, V>) - Method in class it.unive.lisa.cfg.CFG
Computes a fixpoint over this control flow graph.
FixpointException - Exception in it.unive.lisa.cfg
An exception raised during the fixpoint computation.
FixpointException() - Constructor for exception it.unive.lisa.cfg.FixpointException
Builds the exception.
FixpointException(String) - Constructor for exception it.unive.lisa.cfg.FixpointException
Builds the exception.
FixpointException(String, Throwable) - Constructor for exception it.unive.lisa.cfg.FixpointException
Builds the exception.
FixpointException(Throwable) - Constructor for exception it.unive.lisa.cfg.FixpointException
Builds the exception.
followersOf(Statement) - Method in class it.unive.lisa.cfg.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(Statement) - Method in class it.unive.lisa.cfg.CFG
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.
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.AbstractState
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.AnalysisState
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
forgetIdentifier(Identifier) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
forgetIdentifier(Identifier) - Method in interface it.unive.lisa.analysis.SemanticDomain
Forgets an Identifier.
forgetIdentifiers(Collection<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.
fromBoolean(boolean) - Static method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Transforms a boolean value to a SemanticDomain.Satisfiability instance.
fromCFG(CFG, Function<Statement, String>) - Static method in class it.unive.lisa.outputs.DotGraph
Builds a DotGraph from a CFG.
function - Variable in class it.unive.lisa.analysis.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
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.FunctionalLattice
Builds the lattice.
FunctionalLattice(V, Map<K, V>) - Constructor for class it.unive.lisa.analysis.FunctionalLattice
Builds the lattice by cloning the given function.

G

get(int) - Method in class it.unive.lisa.util.collections.ExternalSetCache
Yields the pos-th element of this cache.
getAbstractResultOf(CFGCall, AnalysisState<H, V>, Collection<SymbolicExpression>[]) - Method in interface it.unive.lisa.callgraph.CallGraph
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.
getAbstractResultOf(CFGCall, AnalysisState<H, V>, Collection<SymbolicExpression>[]) - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
getAnalysisResultsOf(CFG) - Method in interface it.unive.lisa.callgraph.CallGraph
Yields the results of the given analysis, identified by its class, on the given CFG.
getAnalysisResultsOf(CFG) - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
getAnalysisStateAt(Statement) - Method in class it.unive.lisa.analysis.CFGWithAnalysisResults
Yields the computed result at a given statement.
getArgs() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the array containing the arguments of the CFG associated with this descriptor.
getBaseType() - Method in interface it.unive.lisa.cfg.type.ArrayType
Yields the base type of this array type.
getCache() - Method in class it.unive.lisa.util.collections.ExternalSet
Yields the cache that this set is connected to.
getCFG() - Method in class it.unive.lisa.cfg.statement.Statement
Yields the CFG that this statement belongs to.
getCFG() - Method in class it.unive.lisa.checks.warnings.CFGWarning
Yields the cfg where this warning was reported on.
getChild() - Method in class it.unive.lisa.symbolic.heap.AccessChild
Yields the expression representing the child memory location.
getCol() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the column where the CFG associated with this descriptor is defined in the source file.
getCol() - Method in class it.unive.lisa.cfg.Parameter
Yields the column where this parameter happens in the source file.
getCol() - Method in class it.unive.lisa.cfg.statement.Statement
Yields the column where this statement happens in the source file.
getCol() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the column where this warning is reported 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.
getComputedExpressions() - Method in class it.unive.lisa.analysis.AnalysisState
Yields the last computed expression.
getConstructName() - Method in class it.unive.lisa.cfg.statement.NativeCall
Yields the CFG that is targeted by this CFG call.
getContainer() - Method in class it.unive.lisa.symbolic.heap.AccessChild
Yields the expression representing the parent memory location.
getCurrentCount() - Method in class it.unive.lisa.logging.Counter
Yields the current count of this counter.
getDescriptor() - Method in class it.unive.lisa.cfg.CFG
Yields the name of this control flow graph.
getDescriptor() - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
Yields the cfg where this warning was reported on.
getDestination() - Method in class it.unive.lisa.cfg.edge.Edge
Yields the statement where this edge ends.
getDynamicType() - Method in class it.unive.lisa.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(Statement, Statement) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Yields the edge connecting the two given statements, if any.
getEdgeConnecting(Statement, Statement) - Method in class it.unive.lisa.cfg.CFG
Yields the edge connecting the two given statements, if any.
getEdges() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Yields the set of edges of this matrix.
getEdges() - Method in class it.unive.lisa.cfg.CFG
Yields the set of edges of this control flow graph.
getEdgesCount() - Method in class it.unive.lisa.cfg.CFG
Yields the total number of edges of this control flow graph.
getEntrypoints() - Method in class it.unive.lisa.cfg.CFG
Yields the statements of this control flow graph that are entrypoints, that is, that can be executed from other cfgs.
getExpression() - Method in class it.unive.lisa.cfg.statement.Return
Yields the expression that is being returned.
getExpression() - Method in class it.unive.lisa.cfg.statement.Throw
Yields the expression that is being raised as error.
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.symbolic.value.UnaryExpression
Yields the inner expression, that is transformed by this expression by applying UnaryExpression.getOperator().
getFiles() - Method in class it.unive.lisa.outputs.JsonReport
Yields the collection of file names contained into this report.
getFullName() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the full name of the CFG associated with this descriptor.
getFullSignature() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the full signature of this cfg.
getHeapState() - Method in class it.unive.lisa.analysis.AbstractState
Yields the instance of HeapDomain that contains the information on heap structures contained in this abstract state.
getIdsToForget() - Method in class it.unive.lisa.analysis.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().
getInnerType() - Method in interface it.unive.lisa.cfg.type.ArrayType
Yields the type of the inner dimension of this array type.
getKeys() - Method in class it.unive.lisa.analysis.FunctionalLattice
Yields the set of keys currently in this lattice.
getLastComputedTypes() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
Yields the InferredTypes instance that has been computed during the creation of this instance of TypeEnvironment.
getLeft() - Method in class it.unive.lisa.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.cfg.CFGDescriptor
Yields the line number where the CFG associated with this descriptor is defined in the source file.
getLine() - Method in class it.unive.lisa.cfg.Parameter
Yields the line number where this parameter happens in the source file.
getLine() - Method in class it.unive.lisa.cfg.statement.Statement
Yields the line number where this statement happens in the source file.
getLine() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the line number where this warning is reported in the source file.
getLocation() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the location where this warning was reported.
getLocationWithBrackets() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the location where this warning was reported, surrounded by square brackets.
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.cfg.statement.CFGCall
 
getMetaVariable() - Method in interface it.unive.lisa.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.cfg.statement.OpenCall
 
getMetaVariable() - Method in class it.unive.lisa.cfg.statement.Return
 
getMetaVariables() - Method in class it.unive.lisa.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.
getName() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the name of the CFG associated with this descriptor.
getName() - Method in class it.unive.lisa.cfg.Parameter
Yields the name of this parameter.
getName() - Method in class it.unive.lisa.cfg.statement.Variable
Yields the name of this variable.
getName() - Method in class it.unive.lisa.symbolic.heap.HeapReference
Yields the name that identifies the memory location.
getName() - Method in class it.unive.lisa.symbolic.value.Identifier
Yields the name of this identifier.
getNodes() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Yields the collection of nodes of this matrix.
getNodes() - Method in class it.unive.lisa.cfg.CFG
Yields the set of nodes of this control flow graph.
getNodesCount() - Method in class it.unive.lisa.cfg.CFG
Yields the total number of nodes of this control flow graph.
getNormalExitpoints() - Method in class it.unive.lisa.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.
getOffset() - Method in class it.unive.lisa.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.
getOperand() - Method in class it.unive.lisa.symbolic.value.TypeConversion
Yields the expression being casted.
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().
getParameters() - Method in class it.unive.lisa.cfg.statement.Call
Yields the parameters of this call.
getQualifiedName() - Method in class it.unive.lisa.cfg.statement.CFGCall
Yields the qualified name of the static target of this call.
getQualifiedName() - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
Yields the qualified name of the target of this call.
getReturnType() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the return type of the CFG associated with this descriptor.
getRewrittenExpressions() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
getRewrittenExpressions() - Method in interface it.unive.lisa.analysis.HeapSemanticOperation
Yields the expressions that were computed during the generation of this heap domain.
getRewrittenExpressions() - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
getRight() - Method in class it.unive.lisa.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.
getRuntimeTypes() - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
Yields the ExternalSet containing the types held by this instance.
getRuntimeTypes() - Method in class it.unive.lisa.cfg.statement.Expression
The concrete types that this expression can have at runtime.
getSource() - Method in class it.unive.lisa.cfg.edge.Edge
Yields the statement where this edge originates.
getSourceFile() - Method in class it.unive.lisa.cfg.CFGDescriptor
Yields the source file name where the CFG associated with this descriptor is defined.
getSourceFile() - Method in class it.unive.lisa.cfg.statement.Statement
Yields the source file name where this statement happens.
getSourceFile() - Method in class it.unive.lisa.checks.warnings.WarningWithLocation
Yields the source file name where this warning is reported.
getSources() - Method in class it.unive.lisa.analysis.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(K) - Method in class it.unive.lisa.analysis.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.cfg.Parameter
Yields the static type of this parameter.
getStaticType() - Method in class it.unive.lisa.cfg.statement.Expression
Yields the static type of this expression.
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 class it.unive.lisa.analysis.heap.MonolithicHeap
 
getSubstitution() - Method in interface it.unive.lisa.analysis.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.nonrelational.HeapEnvironment
 
getTag() - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
 
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.StatementWarning
 
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.cfg.statement.OpenCall
Yields the name of the target of this open call.
getTargets() - Method in class it.unive.lisa.analysis.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.cfg.statement.CFGCall
Yields the CFGs that are targeted by this CFG call.
getToType() - Method in class it.unive.lisa.symbolic.value.TypeConversion
Yields the type that TypeConversion.getOperand() is being casted to.
getTypes() - Method in class it.unive.lisa.symbolic.SymbolicExpression
Yields the runtime types of this expression.
getValue() - Method in class it.unive.lisa.cfg.statement.Literal
Yields the value of this literal.
getValue() - Method in class it.unive.lisa.symbolic.value.Constant
Yields the constant value.
getValueState() - Method in class it.unive.lisa.analysis.AbstractState
Yields the instance of ValueDomain that contains the information on values of program variables and concretized memory locations.
getWarnings() - Method in class it.unive.lisa.checks.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.
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.

H

hashCode() - Method in class it.unive.lisa.analysis.AbstractState
 
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.FunctionalLattice
 
hashCode() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
hashCode() - Method in class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
 
hashCode() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
hashCode() - Method in class it.unive.lisa.analysis.InverseSetLattice
 
hashCode() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
hashCode() - Method in class it.unive.lisa.analysis.SetLattice
 
hashCode() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
 
hashCode() - Method in class it.unive.lisa.cfg.CFG
 
hashCode() - Method in class it.unive.lisa.cfg.CFGDescriptor
 
hashCode() - Method in class it.unive.lisa.cfg.edge.Edge
 
hashCode() - Method in class it.unive.lisa.cfg.Parameter
 
hashCode() - Method in class it.unive.lisa.cfg.statement.BinaryExpression
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Call
 
hashCode() - Method in class it.unive.lisa.cfg.statement.CFGCall
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Expression
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Literal
 
hashCode() - Method in class it.unive.lisa.cfg.statement.NativeCall
 
hashCode() - Method in class it.unive.lisa.cfg.statement.NoOp
 
hashCode() - Method in class it.unive.lisa.cfg.statement.OpenCall
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Ret
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Return
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Statement
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Throw
 
hashCode() - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
 
hashCode() - Method in class it.unive.lisa.cfg.statement.Variable
 
hashCode() - Method in class it.unive.lisa.cfg.type.NullType
 
hashCode() - Method in class it.unive.lisa.cfg.type.Untyped
 
hashCode() - Method in class it.unive.lisa.cfg.type.VoidType
 
hashCode() - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
hashCode() - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
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.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.symbolic.heap.AccessChild
 
hashCode() - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
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.Identifier
 
hashCode() - Method in class it.unive.lisa.symbolic.value.NullConstant
 
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.TypeConversion
 
hashCode() - Method in class it.unive.lisa.symbolic.value.UnaryExpression
 
hashCode() - Method in class it.unive.lisa.util.collections.ExternalSet
 
HeapAllocation - Class in it.unive.lisa.symbolic.heap
An allocation of a memory location.
HeapAllocation(ExternalSet<Type>) - Constructor for class it.unive.lisa.symbolic.heap.HeapAllocation
Builds the heap allocation.
HeapDomain<D extends HeapDomain<D>> - Interface in it.unive.lisa.analysis
A semantic domain that can evaluate the semantic of statements that operate on heap locations, and not on concrete values.
HeapEnvironment<T extends NonRelationalHeapDomain<T>> - Class in it.unive.lisa.analysis.nonrelational
An environment for a NonRelationalHeapDomain, that maps Identifiers to instances of such domain.
HeapEnvironment(T) - Constructor for class it.unive.lisa.analysis.nonrelational.HeapEnvironment
Builds an empty environment.
HeapExpression - Class in it.unive.lisa.symbolic.heap
A symbolic expression that identifies a location in the program's heap.
HeapExpression(ExternalSet<Type>) - Constructor for class it.unive.lisa.symbolic.heap.HeapExpression
Builds the heap expression.
HeapIdentifier - Class in it.unive.lisa.symbolic.value
An identifier of a synthetic program variable that represents a resolved memory location.
HeapIdentifier(ExternalSet<Type>, String) - Constructor for class it.unive.lisa.symbolic.value.HeapIdentifier
Builds the identifier.
HeapReference - Class in it.unive.lisa.symbolic.heap
A reference to a memory location, identified by its name.
HeapReference(ExternalSet<Type>, String) - Constructor for class it.unive.lisa.symbolic.heap.HeapReference
Builds the heap reference.
HeapReplacement() - Constructor for class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
Builds the replacement.
HeapSemanticOperation - Interface in it.unive.lisa.analysis
A semantic operation on the heap state of the program, that rewrites expressions and provides a substitution of the available identifiers.
HeapSemanticOperation.HeapReplacement - Class in it.unive.lisa.analysis
A replacement between Identifiers caused by a change in the heap abstraction.
HOURS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as hours.

I

Identifier - Class in it.unive.lisa.symbolic.value
An identifier of a program variable, representing either a program variable (as an instance of ValueIdentifier), or a resolved memory location (as an instance of HeapIdentifier).
Identifier(ExternalSet<Type>, String) - Constructor for class it.unive.lisa.symbolic.value.Identifier
Builds the identifier.
indexOf(T) - Method in class it.unive.lisa.util.collections.ExternalSetCache
Yields the index where the given element is stored in this cache.
indexOfOrAdd(T) - Method in class it.unive.lisa.util.collections.ExternalSetCache
Yields the index where the given element is stored in this cache.
InferredTypes - Class in it.unive.lisa.analysis.impl.types
A SetLattice holding a set of Types, representing the inferred runtime types of an Expression.
InferredTypes() - Constructor for class it.unive.lisa.analysis.impl.types.InferredTypes
Builds the inferred types.
inheritRuntimeTypesFrom(Expression) - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
Updates this call's runtime types to match the ones of the given expression.
INSTANCE - Static variable in class it.unive.lisa.cfg.type.NullType
Unique instance of NullType.
INSTANCE - Static variable in class it.unive.lisa.cfg.type.Untyped
Unique instance of Untyped type.
INSTANCE - Static variable in class it.unive.lisa.cfg.type.VoidType
Unique instance of VoidType.
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.symbolic.value.NullConstant
The singleton instance of NullConstant.
intersection(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields the intersection of this set and another.
intersects(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Determines if this set has at least an element in common with another if they share the same cache.
IntraproceduralCallGraph - Class in it.unive.lisa.callgraph.impl.intraproc
An instance of CallGraph that does not handle interprocedurality.
IntraproceduralCallGraph() - Constructor for class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
Builds the call graph.
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
A generic inverse set lattice containing a set of elements.
InverseSetLattice(Set<E>) - Constructor for class it.unive.lisa.analysis.InverseSetLattice
Builds the lattice.
is16Bits() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type follows a 16-bits format representation.
is16Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is32Bits() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type follows a 32-bits format representation.
is32Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is64Bits() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type follows a 64-bits format representation.
is64Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
is8Bits() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type follows a 8-bits format representation.
is8Bits() - Method in class it.unive.lisa.symbolic.types.IntType
 
isArrayType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of ArrayType.
isBooleanType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of BooleanType.
isBottom() - Method in class it.unive.lisa.analysis.AbstractState
 
isBottom() - Method in class it.unive.lisa.analysis.AnalysisState
 
isBottom() - Method in class it.unive.lisa.analysis.ExpressionStore
 
isBottom() - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
 
isBottom() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
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.nonrelational.HeapEnvironment
 
isBottom() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
isEmpty() - Method in class it.unive.lisa.util.collections.ExternalSet
Determines if this set is empty.
isEmpty() - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
isEmpty() - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
isEmpty() - Method in interface it.unive.lisa.util.workset.WorkingSet
Yields true if and only if this working set is empty.
isEqualTo(AdjacencyMatrix) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Checks if this matrix is effectively equal to the given one, that is, if they have the same structure while potentially being different instances.
isEqualTo(CFG) - Method in class it.unive.lisa.cfg.CFG
Checks if this cfg is effectively equal to the given one, that is, if they have the same structure while potentially being different instances.
isEqualTo(Edge) - Method in class it.unive.lisa.cfg.edge.Edge
Checks if this edge is effectively equal to the given one, that is, if they have the same structure while potentially being different instances.
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.BinaryExpression
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Call
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.CFGCall
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Expression
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Literal
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.NativeCall
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.NoOp
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.OpenCall
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Ret
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Return
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Statement
Checks if this statement is effectively equal to the given one, that is, if they have the same structure while potentially being different instances.
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Throw
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
 
isEqualTo(Statement) - Method in class it.unive.lisa.cfg.statement.Variable
 
isLogging() - Method in class it.unive.lisa.logging.Counter
Yields true if this counter is currently logging updates.
isNullType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of NullType.
isNumericType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of NumericType.
isPointerType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of PointerType.
isSigned() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type is signed.
isStringType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of StringType.
isTop() - Method in class it.unive.lisa.analysis.AbstractState
 
isTop() - Method in class it.unive.lisa.analysis.AnalysisState
 
isTop() - Method in class it.unive.lisa.analysis.ExpressionStore
 
isTop() - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
 
isTop() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
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.nonrelational.HeapEnvironment
 
isTop() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
isUnsigned() - Method in interface it.unive.lisa.cfg.type.NumericType
Returns true if this numeric type is unsigned.
isUnsigned() - Method in class it.unive.lisa.symbolic.types.IntType
 
isUntyped() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of Untyped.
isVoidType() - Method in interface it.unive.lisa.cfg.type.Type
Yields true if and only if this type is an instance of VoidType.
it.unive.lisa - package it.unive.lisa
 
it.unive.lisa.analysis - package it.unive.lisa.analysis
 
it.unive.lisa.analysis.heap - package it.unive.lisa.analysis.heap
 
it.unive.lisa.analysis.impl.types - package it.unive.lisa.analysis.impl.types
 
it.unive.lisa.analysis.nonrelational - package it.unive.lisa.analysis.nonrelational
 
it.unive.lisa.caches - package it.unive.lisa.caches
 
it.unive.lisa.callgraph - package it.unive.lisa.callgraph
 
it.unive.lisa.callgraph.impl.intraproc - package it.unive.lisa.callgraph.impl.intraproc
 
it.unive.lisa.cfg - package it.unive.lisa.cfg
 
it.unive.lisa.cfg.edge - package it.unive.lisa.cfg.edge
 
it.unive.lisa.cfg.statement - package it.unive.lisa.cfg.statement
 
it.unive.lisa.cfg.type - package it.unive.lisa.cfg.type
 
it.unive.lisa.checks - package it.unive.lisa.checks
 
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.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.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.util.collections - package it.unive.lisa.util.collections
 
it.unive.lisa.util.file - package it.unive.lisa.util.file
 
it.unive.lisa.util.workset - package it.unive.lisa.util.workset
 
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.
IterationLogger() - Constructor for class it.unive.lisa.logging.IterationLogger
 
iterator() - Method in class it.unive.lisa.analysis.FunctionalLattice
 
iterator() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
 
iterator() - Method in class it.unive.lisa.util.collections.ExternalSet
 

J

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.

L

lattice - Variable in class it.unive.lisa.analysis.FunctionalLattice
The underlying lattice.
Lattice<L extends Lattice<L>> - Interface in it.unive.lisa.analysis
An interface for elements that follow a lattice structure.
lessOrEqual(AbstractState<H, V>) - Method in class it.unive.lisa.analysis.AbstractState
 
lessOrEqual(AnalysisState<H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
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.FunctionalLattice
 
lessOrEqualAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
lessOrEqualAux(TypeEnvironment) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
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.InverseSetLattice
 
lessOrEqualAux(S) - Method in class it.unive.lisa.analysis.SetLattice
 
LIFOWorkingSet<E> - Class in it.unive.lisa.util.workset
A last-in, first-out working set.
LiSA - Class in it.unive.lisa
This is the central class of the LiSA library.
LiSA() - Constructor for class it.unive.lisa.LiSA
Builds a new LiSA instance.
Literal - Class in it.unive.lisa.cfg.statement
A literal, representing a constant value.
Literal(CFG, Object, Type) - Constructor for class it.unive.lisa.cfg.statement.Literal
Builds a typed literal, consisting of a constant value.
Literal(CFG, String, int, int, Object, Type) - Constructor for class it.unive.lisa.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.
lub(AbstractState<H, V>) - Method in class it.unive.lisa.analysis.AbstractState
 
lub(AnalysisState<H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
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.FunctionalLattice
 
lubAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
lubAux(TypeEnvironment) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
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.InverseSetLattice
 
lubAux(S) - Method in class it.unive.lisa.analysis.SetLattice
 

M

mergeWith(Statement, AdjacencyMatrix) - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Merges this adjacency matrix with the given one.
MetaVariableCreator - Interface in it.unive.lisa.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.
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.workset.ConcurrentFIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.workset.FIFOWorkingSet
Yields a new, empty working set.
mk() - Static method in class it.unive.lisa.util.workset.LIFOWorkingSet
Yields a new, empty working set.
mk(H, ValueExpression) - Method in class it.unive.lisa.analysis.BaseHeapDomain
Creates a new instance of this domain containing the same abstract information of reference, but setting as rewritten expression the given one.
mk(MonolithicHeap, ValueExpression) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
mk(Set<E>) - Method in class it.unive.lisa.analysis.InverseSetLattice
Utility for creating a concrete instance of InverseSetLattice given a set.
mk(Set<E>) - Method in class it.unive.lisa.analysis.SetLattice
Utility for creating a concrete instance of SetLattice given a set.
mk(Set<Type>) - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
 
mkDotFile(String) - Static 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.ExternalSetCache
Builds an empty ExternalSet that uses this cache.
mkOutputFile(String) - Static method in class it.unive.lisa.util.file.FileManager
Creates a UTF-8 encoded file with the given name.
mkOutputFile(String, boolean) - Static 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.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.ExternalSetCache
Builds an ExternalSet that uses this cache and contains only the given element.
MonolithicHeap - Class in it.unive.lisa.analysis.heap
A monolithic heap implementation that abstracts all heap locations to a unique identifier.
MonolithicHeap() - Constructor for class it.unive.lisa.analysis.heap.MonolithicHeap
Builds a new instance.

N

NANOS - it.unive.lisa.logging.TimeFormat
Formats the given elapsed nanos as nanoseconds.
NativeCall - Class in it.unive.lisa.cfg.statement
A native call, modeling the usage of one of the native constructs of the language.
NativeCall(CFG, String, int, int, String, Expression...) - Constructor for class it.unive.lisa.cfg.statement.NativeCall
Builds the untyped native call, happening at the given location in the program.
NativeCall(CFG, String, int, int, String, Type, Expression...) - Constructor for class it.unive.lisa.cfg.statement.NativeCall
Builds the native call, happening at the given location in the program.
NativeCall(CFG, String, Expression...) - Constructor for class it.unive.lisa.cfg.statement.NativeCall
Builds the untyped native call.
NativeCall(CFG, String, Type, Expression...) - Constructor for class it.unive.lisa.cfg.statement.NativeCall
Builds the native call.
negate() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Negates the current satisfiability, getting the opposite result.
noneMatch(Predicate<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields true iff none of the elements contained in this set satisfy the given predicate.
NonRelationalDomain<T extends NonRelationalDomain<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
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
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.cfg.statement
A statement that does nothing.
NoOp(CFG) - Constructor for class it.unive.lisa.cfg.statement.NoOp
Builds the no-op.
NoOp(CFG, String, int, int) - Constructor for class it.unive.lisa.cfg.statement.NoOp
Builds the no-op, happening at the given location in the program.
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.
NullLiteral - Class in it.unive.lisa.cfg.statement
A literal representing the null constant.
NullLiteral(CFG) - Constructor for class it.unive.lisa.cfg.statement.NullLiteral
Builds the null literal.
NullLiteral(CFG, String, int, int) - Constructor for class it.unive.lisa.cfg.statement.NullLiteral
Builds the null literal, happening at the given location in the program.
NullType - Class in it.unive.lisa.cfg.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.cfg.type
Numeric type interface.

O

off() - Method in class it.unive.lisa.logging.Counter
Turns off the counter, logging the event.
offset - Variable in class it.unive.lisa.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.
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.cfg.statement
A call to a CFG that is not under analysis.
OpenCall(CFG, String, int, int, String, Type, Expression...) - Constructor for class it.unive.lisa.cfg.statement.OpenCall
Builds the open call, happening at the given location in the program.
OpenCall(CFG, String, Expression...) - Constructor for class it.unive.lisa.cfg.statement.OpenCall
Builds the untyped open call.
OpenCall(CFG, String, Type, Expression...) - Constructor for class it.unive.lisa.cfg.statement.OpenCall
Builds the open call.
Operator - Interface in it.unive.lisa.symbolic.value
An operator that causes a transformation of one or more SymbolicExpressions.
or(SemanticDomain.Satisfiability) - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
Performs a logical or between this satisfiability and the given one.

P

Parameter - Class in it.unive.lisa.cfg
A reference to a CFG parameter identified by its name and its type, containing the information about the source file, line and column where a parameter appears.
Parameter(String) - Constructor for class it.unive.lisa.cfg.Parameter
Builds an untyped parameter reference, identified by its name.
Parameter(String, int, int, String, Type) - Constructor for class it.unive.lisa.cfg.Parameter
Builds the parameter reference, identified by its name and its type, happening at the given location in the program.
Parameter(String, Type) - Constructor for class it.unive.lisa.cfg.Parameter
Builds a typed parameter reference, identified by its name and its type.
peek() - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
peek() - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
peek() - Method in interface it.unive.lisa.util.workset.WorkingSet
Returns the next element to be processed from this working set without removing it.
PointerType - Interface in it.unive.lisa.cfg.type
Pointer type interface.
pop() - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
pop() - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
pop() - Method in interface it.unive.lisa.util.workset.WorkingSet
Removes the next element to be processed from this working set and returns it.
predecessorsOf(Statement) - Method in class it.unive.lisa.cfg.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(Statement) - Method in class it.unive.lisa.cfg.CFG
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.
push(E) - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
push(E) - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
push(E) - Method in interface it.unive.lisa.util.workset.WorkingSet
Pushes a new element into this working set.
put(Expression, V) - Method in class it.unive.lisa.analysis.ExpressionStore
Stores the given lattice element for the given expression.

R

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.
reduce(T, BiFunction<T, T, T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Reduces this set to a single element.
remove(Object) - Method in class it.unive.lisa.util.collections.ExternalSet
 
removeAll(Collection<?>) - Method in class it.unive.lisa.util.collections.ExternalSet
 
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.AbstractState
 
representation() - Method in class it.unive.lisa.analysis.AnalysisState
 
representation() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
representation() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
representation() - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
representation() - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalDomain
Yields a textual representation of the content of this domain's instance.
representation() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
representation() - Method in interface it.unive.lisa.analysis.SemanticDomain
Yields a textual representation of the content of this domain's instance.
resolve(UnresolvedCall) - Method in interface it.unive.lisa.callgraph.CallGraph
Yields a Call implementation that corresponds to the resolution of the given UnresolvedCall.
resolve(UnresolvedCall) - Method in class it.unive.lisa.callgraph.impl.intraproc.IntraproceduralCallGraph
 
Ret - Class in it.unive.lisa.cfg.statement
Terminates the execution of the CFG where this statement lies, without returning anything to the caller.
Ret(CFG) - Constructor for class it.unive.lisa.cfg.statement.Ret
Builds the return.
Ret(CFG, String, int, int) - Constructor for class it.unive.lisa.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
 
Return - Class in it.unive.lisa.cfg.statement
Returns an expression to the caller CFG, terminating the execution of the CFG where this statement lies.
Return(CFG, Expression) - Constructor for class it.unive.lisa.cfg.statement.Return
Builds the return, returning expression to the caller CFG.
Return(CFG, String, int, int, Expression) - Constructor for class it.unive.lisa.cfg.statement.Return
Builds the return, returning expression to the caller CFG, happening at the given location in the program.
run() - Method in class it.unive.lisa.LiSA
Runs LiSA, executing all the checks that have been added.
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(Object...) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableMultiConsumer
Runs this consumer.
run(Object...) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableMultiFunction
Runs this function.
run(T0) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableConsumer
Runs this consumer.
run(T0) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableFunction
Runs this function.
run(T0, T1) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableBiConsumer
Runs this consumer.
run(T0, T1) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableBiFunction
Runs this function.
run(T0, T1, T2) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableTriConsumer
Runs this consumer.
run(T0, T1, T2) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableTriFunction
Runs this function.
run(T0, T1, T2, T3) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableQuadConsumer
Runs this consumer.
run(T0, T1, T2, T3) - Method in interface it.unive.lisa.logging.TimerLogger.LoggableQuadFunction
Runs this function.
run(T0, T1, T2, T3, T4) - Method in interface it.unive.lisa.logging.TimerLogger.LoggablePentaConsumer
Runs this consumer.
run(T0, T1, T2, T3, T4) - Method in interface it.unive.lisa.logging.TimerLogger.LoggablePentaFunction
Runs this function.

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) - 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) - Method in class it.unive.lisa.analysis.AbstractState
 
satisfies(SymbolicExpression) - Method in class it.unive.lisa.analysis.AnalysisState
 
satisfies(SymbolicExpression) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
satisfies(SymbolicExpression) - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
satisfies(SymbolicExpression, HeapEnvironment<T>) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalHeapDomain
Checks if the given expression is satisfied by a given heap environment tracking this abstract values, returning an instance of SemanticDomain.Satisfiability.
satisfies(SymbolicExpression, ValueEnvironment<T>) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
 
satisfies(SymbolicExpression, ValueEnvironment<T>) - Method in interface it.unive.lisa.analysis.nonrelational.NonRelationalValueDomain
Checks if the given expression is satisfied by a given value environment tracking this abstract values, returning an instance of SemanticDomain.Satisfiability.
satisfies(ValueExpression) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
satisfies(ValueExpression) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
satisfiesBinaryExpression(BinaryOperator, T, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of a BinaryExpression applying operator to two expressions whose abstract values are left, and right.
satisfiesIdentifier(Identifier) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of the identifier identifier on this abstract domain.
satisfiesNonNullConstant(Constant) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of the given non-null constant on this abstract domain.
satisfiesNullConstant() - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of the null constant NullConstant on this abstract domain.
satisfiesTernaryExpression(TernaryOperator, T, T, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of a TernaryExpression applying operator to three expressions whose abstract values are left, middle and right.
satisfiesTypeConversion(Type, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of a TypeConversion converting an expression whose abstract value is arg to the given Type.
satisfiesUnaryExpression(UnaryOperator, T) - Method in class it.unive.lisa.analysis.nonrelational.BaseNonRelationalValueDomain
Yields the satisfiability of a UnaryExpression applying operator to an expression whose abstract value is arg, returning an instance of SemanticDomain.Satisfiability.
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.
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.
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.
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.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), 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<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.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<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Literal
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.NoOp
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.NullLiteral
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Ret
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Return
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Statement
Computes the semantics of the statement, expressing how semantic information is transformed by the execution of this statement.
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Throw
 
semantics(AnalysisState<H, V>, CallGraph, ExpressionStore<AnalysisState<H, V>>) - Method in class it.unive.lisa.cfg.statement.Variable
 
semanticsOf(HeapExpression) - Method in class it.unive.lisa.analysis.BaseHeapDomain
Yields a new instance of this domain, built by evaluating the semantics of the given heap expression.
semanticsOf(HeapExpression) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
SequentialEdge - Class in it.unive.lisa.cfg.edge
A sequential edge connecting two statement.
SequentialEdge(Statement, Statement) - Constructor for class it.unive.lisa.cfg.edge.SequentialEdge
Builds the edge.
setCallGraph(T) - Method in class it.unive.lisa.LiSA
Sets the CallGraph to use for the analysis.
setDumpAnalysis(boolean) - Method in class it.unive.lisa.LiSA
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.LiSA
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.LiSA
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.
setInferTypes(boolean) - Method in class it.unive.lisa.LiSA
Sets whether or not runtime types should be inferred before executing the semantic analysis.
setJsonOutput(boolean) - Method in class it.unive.lisa.LiSA
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
A generic set lattice containing a set of elements.
SetLattice(Set<E>) - Constructor for class it.unive.lisa.analysis.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.cfg.statement.BinaryExpression
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Call
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Literal
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.NoOp
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Ret
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Return
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Statement
Sets the offset of this statement to the given value, and then proceeds by setting the one of its nested expressions to subsequent values.
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Throw
 
setOffset(int) - Method in class it.unive.lisa.cfg.statement.Variable
 
setRuntimeTypes(ExternalSet<Type>) - Method in class it.unive.lisa.cfg.statement.Expression
Sets the runtime types of this expression.
setWorkdir(String) - Method in class it.unive.lisa.LiSA
Sets the working directory for this instance of LiSA, that is, the directory files will be created, if any.
setWorkdir(String) - Static method in class it.unive.lisa.util.file.FileManager
Sets the working directory that will be used as root folder for the creation of all files.
simplify() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
Simplifies this matrix, removing all NoOps and rewriting the edge set accordingly.
simplify() - Method in class it.unive.lisa.cfg.CFG
Simplifies this cfg, removing all NoOps and rewriting the edge set accordingly.
size() - Method in class it.unive.lisa.util.collections.ExternalSet
Yields the number of elements in this set.
size() - Method in class it.unive.lisa.util.collections.ExternalSetCache
Yields the total number of elements stored in this cache.
size() - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
size() - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
size() - Method in interface it.unive.lisa.util.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() - Constructor for class it.unive.lisa.symbolic.value.Skip
Builds the skip.
smallStepSemantics(E) - 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) - Method in class it.unive.lisa.analysis.AbstractState
 
smallStepSemantics(SymbolicExpression) - Method in class it.unive.lisa.analysis.AnalysisState
 
smallStepSemantics(SymbolicExpression) - Method in class it.unive.lisa.analysis.BaseHeapDomain
 
smallStepSemantics(SymbolicExpression) - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
smallStepSemantics(ValueExpression) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
smallStepSemantics(ValueExpression) - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
Statement - Class in it.unive.lisa.cfg.statement
A statement of the program to analyze.
Statement(CFG, String, int, int) - Constructor for class it.unive.lisa.cfg.statement.Statement
Builds a statement happening at the given source location.
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.
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.
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.cfg.type
String type interface.
SymbolicExpression - Class in it.unive.lisa.symbolic
A symbolic expression that can be evaluated by SemanticDomains.
SymbolicExpression(ExternalSet<Type>) - Constructor for class it.unive.lisa.symbolic.SymbolicExpression
Builds the symbolic expression.
SyntacticCheck - Interface in it.unive.lisa.checks.syntactic
A check that inspects the syntactic structure of the program to report warnings about its structure.
SyntacticChecksExecutor - Class in it.unive.lisa.checks.syntactic
Utility class that handles the execution of SyntacticChecks.
SyntacticChecksExecutor() - Constructor for class it.unive.lisa.checks.syntactic.SyntacticChecksExecutor
 

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) - Constructor for class it.unive.lisa.symbolic.value.TernaryExpression
Builds the binary expression.
TernaryOperator - Enum in it.unive.lisa.symbolic.value
A ternary operator that can be applied to a triple of SymbolicExpressions.
Throw - Class in it.unive.lisa.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, Expression) - Constructor for class it.unive.lisa.cfg.statement.Throw
Builds the throw, raising expression as error.
Throw(CFG, String, int, int, Expression) - Constructor for class it.unive.lisa.cfg.statement.Throw
Builds the throw, raising expression as error, happening at the given location in the program.
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() - Constructor for class it.unive.lisa.logging.TimerLogger
 
TimerLogger.LoggableAction - Interface in it.unive.lisa.logging
A Runnable executing a function with no arguments a no return value.
TimerLogger.LoggableBiConsumer<T0,​T1> - Interface in it.unive.lisa.logging
A Consumer consuming two arguments.
TimerLogger.LoggableBiFunction<R,​T0,​T1> - Interface in it.unive.lisa.logging
A Function consuming two arguments and producing one value.
TimerLogger.LoggableConsumer<T0> - Interface in it.unive.lisa.logging
A Consumer consuming one argument.
TimerLogger.LoggableFunction<R,​T0> - Interface in it.unive.lisa.logging
A Function consuming one argument and producing one value.
TimerLogger.LoggableMultiConsumer - Interface in it.unive.lisa.logging
A Consumer consuming multiple arguments.
TimerLogger.LoggableMultiFunction<R> - Interface in it.unive.lisa.logging
A Function consuming multiple arguments and producing one value.
TimerLogger.LoggablePentaConsumer<T0,​T1,​T2,​T3,​T4> - Interface in it.unive.lisa.logging
A Consumer consuming five arguments.
TimerLogger.LoggablePentaFunction<R,​T0,​T1,​T2,​T3,​T4> - Interface in it.unive.lisa.logging
A Function consuming five arguments and producing one value.
TimerLogger.LoggableQuadConsumer<T0,​T1,​T2,​T3> - Interface in it.unive.lisa.logging
A Consumer consuming four arguments.
TimerLogger.LoggableQuadFunction<R,​T0,​T1,​T2,​T3> - Interface in it.unive.lisa.logging
A Function consuming four arguments and producing one value.
TimerLogger.LoggableSupplier<R> - Interface in it.unive.lisa.logging
A Supplier producing one element.
TimerLogger.LoggableTriConsumer<T0,​T1,​T2> - Interface in it.unive.lisa.logging
A Consumer consuming three arguments.
TimerLogger.LoggableTriFunction<R,​T0,​T1,​T2> - Interface in it.unive.lisa.logging
A Function consuming three arguments and producing one value.
toArray() - Method in class it.unive.lisa.util.collections.ExternalSet
 
toArray(E[]) - Method in class it.unive.lisa.util.collections.ExternalSet
 
top() - Method in class it.unive.lisa.analysis.AbstractState
 
top() - Method in class it.unive.lisa.analysis.AnalysisState
 
top() - Method in class it.unive.lisa.analysis.ExpressionStore
 
top() - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
top() - Method in class it.unive.lisa.analysis.impl.types.InferredTypes
 
top() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
top() - Method in interface it.unive.lisa.analysis.Lattice
Yields the top element of this lattice.
top() - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
top() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
top() - Method in enum it.unive.lisa.analysis.SemanticDomain.Satisfiability
 
toString() - Method in class it.unive.lisa.analysis.AbstractState
 
toString() - Method in class it.unive.lisa.analysis.AnalysisState
 
toString() - Method in class it.unive.lisa.analysis.BaseHeapDomain
 
toString() - Method in class it.unive.lisa.analysis.FunctionalLattice
 
toString() - Method in class it.unive.lisa.analysis.HeapSemanticOperation.HeapReplacement
 
toString() - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
toString() - Method in class it.unive.lisa.analysis.InverseSetLattice
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.HeapEnvironment
 
toString() - Method in class it.unive.lisa.analysis.nonrelational.ValueEnvironment
 
toString() - Method in class it.unive.lisa.analysis.SetLattice
 
toString() - Method in class it.unive.lisa.cfg.AdjacencyMatrix
 
toString() - Method in class it.unive.lisa.cfg.CFG
 
toString() - Method in class it.unive.lisa.cfg.CFGDescriptor
 
toString() - Method in class it.unive.lisa.cfg.edge.Edge
 
toString() - Method in class it.unive.lisa.cfg.edge.FalseEdge
 
toString() - Method in class it.unive.lisa.cfg.edge.SequentialEdge
 
toString() - Method in class it.unive.lisa.cfg.edge.TrueEdge
 
toString() - Method in class it.unive.lisa.cfg.Parameter
 
toString() - Method in class it.unive.lisa.cfg.statement.Assignment
 
toString() - Method in class it.unive.lisa.cfg.statement.CFGCall
 
toString() - Method in class it.unive.lisa.cfg.statement.Literal
 
toString() - Method in class it.unive.lisa.cfg.statement.NativeCall
 
toString() - Method in class it.unive.lisa.cfg.statement.NoOp
 
toString() - Method in class it.unive.lisa.cfg.statement.NullLiteral
 
toString() - Method in class it.unive.lisa.cfg.statement.OpenCall
 
toString() - Method in class it.unive.lisa.cfg.statement.Ret
 
toString() - Method in class it.unive.lisa.cfg.statement.Return
 
toString() - Method in class it.unive.lisa.cfg.statement.Statement
 
toString() - Method in class it.unive.lisa.cfg.statement.Throw
 
toString() - Method in class it.unive.lisa.cfg.statement.UnresolvedCall
 
toString() - Method in class it.unive.lisa.cfg.statement.Variable
 
toString() - Method in class it.unive.lisa.cfg.type.NullType
 
toString() - Method in class it.unive.lisa.cfg.type.Untyped
 
toString() - Method in class it.unive.lisa.cfg.type.VoidType
 
toString() - Method in class it.unive.lisa.checks.warnings.CFGDesccriptorWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.CFGWarning
 
toString() - Method in class it.unive.lisa.checks.warnings.StatementWarning
 
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.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.symbolic.heap.AccessChild
 
toString() - Method in class it.unive.lisa.symbolic.heap.HeapAllocation
 
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.HeapIdentifier
 
toString() - Method in class it.unive.lisa.symbolic.value.NullConstant
 
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.TypeConversion
 
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.ValueIdentifier
 
toString() - Method in class it.unive.lisa.util.collections.ExternalSet
 
toString() - Method in class it.unive.lisa.util.collections.ExternalSetCache
 
toString() - Method in class it.unive.lisa.util.workset.ConcurrentFIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.workset.ConcurrentLIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.workset.FIFOWorkingSet
 
toString() - Method in class it.unive.lisa.util.workset.LIFOWorkingSet
 
traverse(AnalysisState<H, V>) - Method in class it.unive.lisa.cfg.edge.Edge
Traverses this edge, optionally modifying the given sourceState by applying semantic assumptions.
traverse(AnalysisState<H, V>) - Method in class it.unive.lisa.cfg.edge.FalseEdge
 
traverse(AnalysisState<H, V>) - Method in class it.unive.lisa.cfg.edge.SequentialEdge
 
traverse(AnalysisState<H, V>) - Method in class it.unive.lisa.cfg.edge.TrueEdge
 
TrueEdge - Class in it.unive.lisa.cfg.edge
A sequential edge connecting two statements.
TrueEdge(Statement, Statement) - Constructor for class it.unive.lisa.cfg.edge.TrueEdge
Builds the edge.
Type - Interface in it.unive.lisa.cfg.type
Type interface.
TypeConversion - Class in it.unive.lisa.symbolic.value
An expression converting the type of a SymbolicExpression to the given desired Type.
TypeConversion(Type, SymbolicExpression) - Constructor for class it.unive.lisa.symbolic.value.TypeConversion
Builds the type conversion.
TypeEnvironment - Class in it.unive.lisa.analysis.impl.types
A type environment, mapping Identifiers to InferredTypes holding the runtime types of identifiers, that behave the similarly to a ValueEnvironment.
TypeEnvironment() - Constructor for class it.unive.lisa.analysis.impl.types.TypeEnvironment
Builds an empty type environment.
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Assignment
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Call
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Literal
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.NoOp
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.NullLiteral
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Ret
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Return
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Statement
Computes the runtime types for this statement, expressing how type information is transformed by the execution of this statement.
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Throw
 
typeInference(AnalysisState<H, TypeEnvironment>, CallGraph, ExpressionStore<AnalysisState<H, TypeEnvironment>>) - Method in class it.unive.lisa.cfg.statement.Variable
 
types() - Static method in class it.unive.lisa.caches.Caches
Yields the globally defined cache for ExternalSets containing 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) - Constructor for class it.unive.lisa.symbolic.value.UnaryExpression
Builds the unary expression.
UnaryNativeCall - Class in it.unive.lisa.cfg.statement
A NativeCall with a single argument.
UnaryNativeCall(CFG, String, int, int, String, Expression) - Constructor for class it.unive.lisa.cfg.statement.UnaryNativeCall
Builds the untyped native call, happening at the given location in the program.
UnaryNativeCall(CFG, String, int, int, String, Type, Expression) - Constructor for class it.unive.lisa.cfg.statement.UnaryNativeCall
Builds the native call, happening at the given location in the program.
UnaryNativeCall(CFG, String, Expression) - Constructor for class it.unive.lisa.cfg.statement.UnaryNativeCall
Builds the untyped native call.
UnaryNativeCall(CFG, String, Type, Expression) - Constructor for class it.unive.lisa.cfg.statement.UnaryNativeCall
Builds the native call.
UnaryOperator - Enum in it.unive.lisa.symbolic.value
A unary operator that can be applied to a single SymbolicExpression.
unarySemantics(AnalysisState<H, V>, CallGraph, SymbolicExpression) - Method in class it.unive.lisa.cfg.statement.UnaryNativeCall
Computes the semantics of the call, after the semantics of the parameter has been computed.
union(ExternalSet<T>) - Method in class it.unive.lisa.util.collections.ExternalSet
Yields the union of this set and another.
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.cfg.statement
A call that happens inside the program to analyze.
UnresolvedCall(CFG, String, int, int, String, Expression...) - Constructor for class it.unive.lisa.cfg.statement.UnresolvedCall
Builds the CFG call, happening at the given location in the program.
UnresolvedCall(CFG, String, Expression...) - Constructor for class it.unive.lisa.cfg.statement.UnresolvedCall
Builds the call.
Untyped - Class in it.unive.lisa.cfg.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

ValueDomain<D extends ValueDomain<D>> - Interface in it.unive.lisa.analysis
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
An environment for a NonRelationalValueDomain, that maps Identifiers to instances of such domain.
ValueEnvironment(T) - Constructor for class it.unive.lisa.analysis.nonrelational.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>) - Constructor for class it.unive.lisa.symbolic.value.ValueExpression
Builds the heap expression.
ValueIdentifier - Class in it.unive.lisa.symbolic.value
An identifier of a real program variable.
ValueIdentifier(ExternalSet<Type>, String) - Constructor for class it.unive.lisa.symbolic.value.ValueIdentifier
Builds the identifier.
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.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.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 - Class in it.unive.lisa.cfg.statement
A reference to a variable of the current CFG, identified by its name.
Variable(CFG, String) - Constructor for class it.unive.lisa.cfg.statement.Variable
Builds the untyped variable reference, identified by its name.
Variable(CFG, String, int, int, String, Type) - Constructor for class it.unive.lisa.cfg.statement.Variable
Builds the variable reference, identified by its name, happening at the given location in the program.
Variable(CFG, String, Type) - Constructor for class it.unive.lisa.cfg.statement.Variable
Builds a typed variable reference, identified by its name and its type.
visitCFGDescriptor(CheckTool, CFGDescriptor) - Method in interface it.unive.lisa.checks.syntactic.SyntacticCheck
Callback invoked when inspecting the descriptor of a CFG.
visitExpression(CheckTool, Expression) - Method in interface it.unive.lisa.checks.syntactic.SyntacticCheck
Callback invoked when inspecting an expression.
visitStatement(CheckTool, Statement) - Method in interface it.unive.lisa.checks.syntactic.SyntacticCheck
Callback invoked when inspecting a statement.
VoidType - Class in it.unive.lisa.cfg.type
The void type.

W

warn(String) - Method in class it.unive.lisa.checks.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(String, int, int, String) - Constructor for class it.unive.lisa.checks.warnings.WarningWithLocation
Builds the warning.
warnOn(CFGDescriptor, String) - Method in class it.unive.lisa.checks.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.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.CheckTool
Reports a new warning with the given message on the given expression.
warnOn(Statement, String) - Method in class it.unive.lisa.checks.CheckTool
Reports a new warning with the given message on the given statement.
widening(AbstractState<H, V>) - Method in class it.unive.lisa.analysis.AbstractState
 
widening(AnalysisState<H, V>) - Method in class it.unive.lisa.analysis.AnalysisState
 
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(F) - Method in class it.unive.lisa.analysis.FunctionalLattice
 
wideningAux(MonolithicHeap) - Method in class it.unive.lisa.analysis.heap.MonolithicHeap
 
wideningAux(TypeEnvironment) - Method in class it.unive.lisa.analysis.impl.types.TypeEnvironment
 
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.InverseSetLattice
 
wideningAux(S) - Method in class it.unive.lisa.analysis.SetLattice
 
WorkingSet<E> - Interface in it.unive.lisa.util.workset
A working set, containing items to be processed.
A B C D E F G H I J L M N O P R S T U V W 
All Classes All Packages