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.