Class 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 of AllocationSite.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface it.unive.lisa.analysis.heap.HeapSemanticOperation

        it.unive.lisa.analysis.heap.HeapSemanticOperation.HeapReplacement
    • Field Summary

      • Fields inherited from class it.unive.lisa.analysis.lattices.SetLattice

        elements, isTop
      • Fields inherited from interface it.unive.lisa.analysis.Lattice

        BOTTOM_STRING, TOP_STRING
    • 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 java.lang.Iterable

        forEach, spliterator
      • Methods inherited from interface it.unive.lisa.analysis.Lattice

        isBottom, isTop, lessOrEqual, lub, widening
      • Methods inherited from interface it.unive.lisa.analysis.nonrelational.NonRelationalElement

        glb, variable
      • Methods inherited from interface it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain

        rewriteAll
    • Constructor Detail

      • AllocationSites

        public AllocationSites()
        Builds an instance of HeapIdentiferSetLattice, corresponding to the top element.
    • Method Detail

      • 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 interface it.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 interface it.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 interface it.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 interface it.unive.lisa.analysis.heap.HeapSemanticOperation
      • tracksIdentifiers

        public boolean tracksIdentifiers​(it.unive.lisa.symbolic.value.Identifier id)
        Specified by:
        tracksIdentifiers in interface it.unive.lisa.analysis.SemanticEvaluator
      • canProcess

        public boolean canProcess​(it.unive.lisa.symbolic.SymbolicExpression expression)
        Specified by:
        canProcess in interface it.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 interface it.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 interface it.unive.lisa.analysis.nonrelational.heap.NonRelationalHeapDomain<AllocationSites>
        Throws:
        it.unive.lisa.analysis.SemanticException