Class IntegerConstantPropagation

  • All Implemented Interfaces:
    it.unive.lisa.analysis.Lattice<IntegerConstantPropagation>, it.unive.lisa.analysis.nonrelational.NonRelationalDomain<IntegerConstantPropagation,​it.unive.lisa.symbolic.value.ValueExpression,​it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<IntegerConstantPropagation>>, it.unive.lisa.analysis.nonrelational.NonRelationalElement<IntegerConstantPropagation,​it.unive.lisa.symbolic.value.ValueExpression,​it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<IntegerConstantPropagation>>, it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<IntegerConstantPropagation>, it.unive.lisa.analysis.SemanticEvaluator

    public class IntegerConstantPropagation
    extends it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain<IntegerConstantPropagation>
    The overflow-insensitive basic integer constant propagation abstract domain, tracking if a certain integer value has constant value or not, implemented as a BaseNonRelationalValueDomain, handling top and bottom values for the expression evaluation and bottom values for the expression satisfiability. Top and bottom cases for least upper bounds, widening and less or equals operations are handled by BaseLattice in BaseLattice.lub(L), BaseLattice.widening(L) and BaseLattice.lessOrEqual(L), respectively.
    • Constructor Detail

      • IntegerConstantPropagation

        public IntegerConstantPropagation()
        Builds the top abstract value.
      • IntegerConstantPropagation

        public IntegerConstantPropagation​(java.lang.Integer value)
        Builds the abstract value for the given constant.
        Parameters:
        value - the constant