Class AllocationSites
- java.lang.Object
-
- it.unive.lisa.analysis.BaseLattice<S>
-
- it.unive.lisa.analysis.lattices.SetLattice<AllocationSites,AllocationSite>
-
- it.unive.lisa.analysis.heap.pointbased.AllocationSites
-
- All Implemented Interfaces:
it.unive.lisa.analysis.heap.HeapSemanticOperation
,it.unive.lisa.analysis.Lattice<AllocationSites>
,it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain<AllocationSites>
,it.unive.lisa.analysis.nonrelational.NonRelationalDomain<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
,it.unive.lisa.analysis.nonrelational.NonRelationalElement<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
,it.unive.lisa.analysis.SemanticEvaluator
,java.lang.Iterable<AllocationSite>
public class AllocationSites extends it.unive.lisa.analysis.lattices.SetLattice<AllocationSites,AllocationSite> implements it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain<AllocationSites>
A heap domain tracking sets ofAllocationSite
.
-
-
Constructor Summary
Constructors Constructor Description AllocationSites()
Builds an instance of HeapIdentiferSetLattice, corresponding to the top element.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>
assume(it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.program.cfg.ProgramPoint pp)
AllocationSites
bottom()
boolean
canProcess(it.unive.lisa.symbolic.SymbolicExpression expression)
AllocationSites
eval(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp)
java.util.List<it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement>
getSubstitution()
java.util.Iterator<AllocationSite>
iterator()
AllocationSites
lubAux(AllocationSites other)
AllocationSites
mk(java.util.Set<AllocationSite> set)
it.unive.lisa.analysis.representation.DomainRepresentation
representation()
it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.value.ValueExpression>
rewrite(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp)
it.unive.lisa.analysis.SemanticDomain.Satisfiability
satisfies(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp)
AllocationSites
top()
boolean
tracksIdentifiers(it.unive.lisa.symbolic.value.Identifier id)
-
Methods inherited from class it.unive.lisa.analysis.lattices.SetLattice
contains, elements, equals, glb, hashCode, isBottom, isEmpty, isTop, lessOrEqualAux, size, toString
-
Methods inherited from class it.unive.lisa.analysis.BaseLattice
lessOrEqual, lub, widening, wideningAux
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unive.lisa.analysis.Lattice
isBottom, isTop, lessOrEqual, lub, widening
-
-
-
-
Method Detail
-
top
public AllocationSites top()
- Specified by:
top
in interfaceit.unive.lisa.analysis.Lattice<AllocationSites>
-
bottom
public AllocationSites bottom()
- Specified by:
bottom
in interfaceit.unive.lisa.analysis.Lattice<AllocationSites>
-
mk
public AllocationSites mk(java.util.Set<AllocationSite> set)
- Specified by:
mk
in classit.unive.lisa.analysis.lattices.SetLattice<AllocationSites,AllocationSite>
-
iterator
public java.util.Iterator<AllocationSite> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<AllocationSite>
- Overrides:
iterator
in classit.unive.lisa.analysis.lattices.SetLattice<AllocationSites,AllocationSite>
-
eval
public AllocationSites eval(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp)
- Specified by:
eval
in interfaceit.unive.lisa.analysis.nonrelational.NonRelationalDomain<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
-
satisfies
public it.unive.lisa.analysis.SemanticDomain.Satisfiability satisfies(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp)
- Specified by:
satisfies
in interfaceit.unive.lisa.analysis.nonrelational.NonRelationalElement<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
-
representation
public it.unive.lisa.analysis.representation.DomainRepresentation representation()
- Specified by:
representation
in interfaceit.unive.lisa.analysis.nonrelational.NonRelationalElement<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
-
getSubstitution
public java.util.List<it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement> getSubstitution()
- Specified by:
getSubstitution
in interfaceit.unive.lisa.analysis.heap.HeapSemanticOperation
-
lubAux
public AllocationSites lubAux(AllocationSites other) throws it.unive.lisa.analysis.SemanticException
- Overrides:
lubAux
in classit.unive.lisa.analysis.lattices.SetLattice<AllocationSites,AllocationSite>
- Throws:
it.unive.lisa.analysis.SemanticException
-
tracksIdentifiers
public boolean tracksIdentifiers(it.unive.lisa.symbolic.value.Identifier id)
- Specified by:
tracksIdentifiers
in interfaceit.unive.lisa.analysis.SemanticEvaluator
-
canProcess
public boolean canProcess(it.unive.lisa.symbolic.SymbolicExpression expression)
- Specified by:
canProcess
in interfaceit.unive.lisa.analysis.SemanticEvaluator
-
assume
public it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> assume(it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Specified by:
assume
in interfaceit.unive.lisa.analysis.nonrelational.NonRelationalElement<AllocationSites,it.unive.lisa.symbolic.SymbolicExpression,it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites>>
- Throws:
it.unive.lisa.analysis.SemanticException
-
rewrite
public it.unive.lisa.analysis.lattices.ExpressionSet<it.unive.lisa.symbolic.value.ValueExpression> rewrite(it.unive.lisa.symbolic.SymbolicExpression expression, it.unive.lisa.analysis.nonrelational.heap.HeapEnvironment<AllocationSites> environment, it.unive.lisa.program.cfg.ProgramPoint pp) throws it.unive.lisa.analysis.SemanticException
- Specified by:
rewrite
in interfaceit.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain<AllocationSites>
- Throws:
it.unive.lisa.analysis.SemanticException
-
-