Lines Matching refs:RangeSet
111 RangeSet::ContainerType RangeSet::Factory::EmptySet{};
113 RangeSet RangeSet::Factory::add(RangeSet LHS, RangeSet RHS) { in add()
121 RangeSet RangeSet::Factory::add(RangeSet Original, Range Element) { in add()
133 RangeSet RangeSet::Factory::add(RangeSet Original, const llvm::APSInt &Point) { in add()
137 RangeSet RangeSet::Factory::unite(RangeSet LHS, RangeSet RHS) { in unite()
142 RangeSet RangeSet::Factory::unite(RangeSet Original, Range R) { in unite()
149 RangeSet RangeSet::Factory::unite(RangeSet Original, llvm::APSInt Point) { in unite()
153 RangeSet RangeSet::Factory::unite(RangeSet Original, llvm::APSInt From, in unite()
165 RangeSet::ContainerType RangeSet::Factory::unite(const ContainerType &LHS, in unite()
317 RangeSet RangeSet::Factory::getRangeSet(Range From) { in getRangeSet()
323 RangeSet RangeSet::Factory::makePersistent(ContainerType &&From) { in makePersistent()
341 RangeSet::ContainerType *RangeSet::Factory::construct(ContainerType &&From) { in construct()
346 const llvm::APSInt &RangeSet::getMinValue() const { in getMinValue()
351 const llvm::APSInt &RangeSet::getMaxValue() const { in getMaxValue()
356 bool clang::ento::RangeSet::isUnsigned() const { in isUnsigned()
361 uint32_t clang::ento::RangeSet::getBitWidth() const { in getBitWidth()
366 APSIntType clang::ento::RangeSet::getAPSIntType() const { in getAPSIntType()
371 bool RangeSet::containsImpl(llvm::APSInt &Point) const { in containsImpl()
383 bool RangeSet::pin(llvm::APSInt &Point) const { in pin()
392 bool RangeSet::pin(llvm::APSInt &Lower, llvm::APSInt &Upper) const { in pin()
473 RangeSet RangeSet::Factory::intersect(RangeSet What, llvm::APSInt Lower, in intersect()
516 RangeSet RangeSet::Factory::intersect(const RangeSet::ContainerType &LHS, in intersect()
517 const RangeSet::ContainerType &RHS) { in intersect()
594 RangeSet RangeSet::Factory::intersect(RangeSet LHS, RangeSet RHS) { in intersect()
603 RangeSet RangeSet::Factory::intersect(RangeSet LHS, llvm::APSInt Point) { in intersect()
610 RangeSet RangeSet::Factory::negate(RangeSet What) { in negate()
675 RangeSet RangeSet::Factory::castTo(RangeSet What, APSIntType Ty) { in castTo()
706 RangeSet RangeSet::Factory::castTo(RangeSet What, QualType T) { in castTo()
711 RangeSet::ContainerType RangeSet::Factory::truncateTo(RangeSet What, in truncateTo()
777 RangeSet::ContainerType RangeSet::Factory::convertTo(RangeSet What, in convertTo()
826 RangeSet::ContainerType RangeSet::Factory::promoteTo(RangeSet What, in promoteTo()
848 RangeSet RangeSet::Factory::deletePoint(RangeSet From, in deletePoint()
868 LLVM_DUMP_METHOD void RangeSet::dump(raw_ostream &OS) const { in dump()
873 LLVM_DUMP_METHOD void RangeSet::dump() const { dump(llvm::errs()); } in dump()
883 REGISTER_MAP_WITH_PROGRAMSTATE(ConstraintRange, EquivalenceClass, RangeSet)
920 LLVM_NODISCARD static inline ProgramStateRef merge(RangeSet::Factory &F,
926 merge(RangeSet::Factory &F, ProgramStateRef State, EquivalenceClass Other);
949 markDisequal(RangeSet::Factory &F, ProgramStateRef State, SymbolRef First,
952 markDisequal(RangeSet::Factory &F, ProgramStateRef State,
955 markDisequal(RangeSet::Factory &F, ProgramStateRef State,
976 RangeSet::Factory &F,
1027 inline ProgramStateRef mergeImpl(RangeSet::Factory &F, ProgramStateRef State,
1033 RangeSet::Factory &F, ProgramStateRef State,
1048 [](const std::pair<EquivalenceClass, RangeSet> &ClassConstraint) { in areFeasible()
1053 LLVM_NODISCARD inline const RangeSet *getConstraint(ProgramStateRef State, in getConstraint()
1058 LLVM_NODISCARD inline const RangeSet *getConstraint(ProgramStateRef State, in getConstraint()
1065 RangeSet Constraint) { in setConstraint()
1108 LLVM_NODISCARD inline RangeSet intersect(RangeSet::Factory &F, RangeSet Head,
1113 template <class... TailTy> struct IntersectionTraits<RangeSet, TailTy...> {
1115 using Type = RangeSet;
1121 using Type = Optional<RangeSet>;
1131 LLVM_NODISCARD inline EndTy intersect(RangeSet::Factory &F, EndTy End) { in intersect()
1137 LLVM_NODISCARD LLVM_ATTRIBUTE_UNUSED inline Optional<RangeSet>
1138 intersect(RangeSet::Factory &F, const RangeSet *End) { in intersect()
1147 LLVM_NODISCARD inline RangeSet intersect(RangeSet::Factory &F, RangeSet Head, in intersect()
1148 RangeSet Second, RestTy... Tail) { in intersect()
1155 LLVM_NODISCARD inline RangeSet intersect(RangeSet::Factory &F, RangeSet Head, in intersect()
1188 intersect(RangeSet::Factory &F, HeadTy Head, SecondTy Second, in intersect()
1206 : public SymExprVisitor<SymbolicRangeInferrer, RangeSet> {
1209 static RangeSet inferRange(RangeSet::Factory &F, ProgramStateRef State, in inferRange()
1215 RangeSet VisitSymExpr(SymbolRef Sym) { in VisitSymExpr()
1216 if (Optional<RangeSet> RS = getRangeForNegatedSym(Sym)) in VisitSymExpr()
1225 RangeSet VisitUnarySymExpr(const UnarySymExpr *USE) { in VisitUnarySymExpr()
1226 if (Optional<RangeSet> RS = getRangeForNegatedUnarySym(USE)) in VisitUnarySymExpr()
1231 RangeSet VisitSymIntExpr(const SymIntExpr *Sym) { in VisitSymIntExpr()
1235 RangeSet VisitIntSymExpr(const IntSymExpr *Sym) { in VisitIntSymExpr()
1239 RangeSet VisitSymSymExpr(const SymSymExpr *SSE) { in VisitSymSymExpr()
1261 SymbolicRangeInferrer(RangeSet::Factory &F, ProgramStateRef S) in SymbolicRangeInferrer()
1268 RangeSet inferAs(const llvm::APSInt &Val, QualType) { in inferAs()
1273 RangeSet inferAs(SymbolRef Sym, QualType DestType) { in inferAs()
1285 RangeSet infer(SymbolRef Sym) { in infer()
1295 RangeSet infer(EquivalenceClass Class) { in infer()
1296 if (const RangeSet *AssociatedConstraint = getConstraint(State, Class)) in infer()
1303 RangeSet infer(QualType T) { in infer()
1306 RangeSet Result(RangeFactory, ValueFactory.getMinValue(T), in infer()
1317 RangeSet VisitBinaryOperator(const BinarySymExprTy *Sym) { in VisitBinaryOperator()
1335 RangeSet VisitBinaryOperator(RangeSet LHS, BinaryOperator::Opcode Op, in VisitBinaryOperator()
1336 RangeSet RHS, QualType T) { in VisitBinaryOperator()
1358 static Range fillGaps(RangeSet Origin) { in fillGaps()
1376 RangeSet VisitBinaryOperator(RangeSet LHS, RangeSet RHS, QualType T) { in VisitBinaryOperator()
1403 RangeSet VisitBinaryOperator(Range LHS, Range RHS, QualType T) { in VisitBinaryOperator()
1448 RangeSet assumeNonZero(RangeSet Domain, QualType T) { in assumeNonZero()
1454 Optional<RangeSet> getRangeForNegatedExpr(ProduceNegatedSymFunc F, in getRangeForNegatedExpr()
1462 if (const RangeSet *NegatedRange = getConstraint(State, NegatedSym)) in getRangeForNegatedExpr()
1468 Optional<RangeSet> getRangeForNegatedUnarySym(const UnarySymExpr *USE) { in getRangeForNegatedUnarySym()
1480 Optional<RangeSet> getRangeForNegatedSymSym(const SymSymExpr *SSE) { in getRangeForNegatedSymSym()
1491 Optional<RangeSet> getRangeForNegatedSym(SymbolRef Sym) { in getRangeForNegatedSym()
1510 Optional<RangeSet> getRangeForComparisonSymbol(const SymSymExpr *SSE) { in getRangeForComparisonSymbol()
1539 const RangeSet *QueriedRangeSet = getConstraint(State, SymSym); in getRangeForComparisonSymbol()
1588 Optional<RangeSet> getRangeForEqualities(const SymSymExpr *Sym) { in getRangeForEqualities()
1609 RangeSet getTrueRange(QualType T) { in getTrueRange()
1610 RangeSet TypeRange = infer(T); in getTrueRange()
1614 RangeSet getFalseRange(QualType T) { in getFalseRange()
1616 return RangeSet(RangeFactory, Zero); in getFalseRange()
1620 RangeSet::Factory &RangeFactory;
1629 RangeSet SymbolicRangeInferrer::VisitBinaryOperator<BO_Or>(Range LHS, Range RHS, in VisitBinaryOperator()
1671 RangeSet DefaultRange = infer(T); in VisitBinaryOperator()
1686 RangeSet SymbolicRangeInferrer::VisitBinaryOperator<BO_And>(Range LHS, in VisitBinaryOperator()
1732 RangeSet SymbolicRangeInferrer::VisitBinaryOperator<BO_Rem>(Range LHS, in VisitBinaryOperator()
1871 RangeSet::Factory F;
1873 RangeSet getRange(ProgramStateRef State, SymbolRef Sym);
1874 RangeSet getRange(ProgramStateRef State, EquivalenceClass Class);
1876 RangeSet Range);
1878 RangeSet Range);
1880 RangeSet getSymLTRange(ProgramStateRef St, SymbolRef Sym,
1883 RangeSet getSymGTRange(ProgramStateRef St, SymbolRef Sym,
1886 RangeSet getSymLERange(ProgramStateRef St, SymbolRef Sym,
1889 RangeSet getSymLERange(llvm::function_ref<RangeSet()> RS,
1892 RangeSet getSymGERange(ProgramStateRef St, SymbolRef Sym,
1925 void assign(SymbolRef Sym, RangeSet Constraint) { in assign()
1929 bool assignImpl(SymbolRef Sym, RangeSet Constraint) { in assignImpl()
1940 bool assign##Id##To##RangeSet(const Id *Sym, RangeSet Constraint) { \
1957 ASSIGN(Id, RangeSet, Sym, Constraint)
1963 bool assign##Id##Impl(const Id *Sym, RangeSet Constraint) { \
1972 bool assignSymExprImpl(const SymExpr *Sym, RangeSet Constraint) { in assignSymExprImpl()
1999 assign(ProgramStateRef State, SValBuilder &Builder, RangeSet::Factory &F, in assign()
2000 ClassOrSymbol CoS, RangeSet NewConstraint) { in assign()
2010 bool handleRemainderOp(const SymT *Sym, RangeSet Constraint) { in handleRemainderOp()
2027 RangeSet Constraint) { in assignSymIntExprToRangeSet()
2031 RangeSet Constraint);
2035 RangeSet::Factory &F) in ConstraintAssignor()
2040 LLVM_NODISCARD ProgramStateRef assign(SymbolRef Sym, RangeSet NewConstraint) { in assign()
2055 RangeSet NewConstraint) { in assign()
2070 RangeSet UpdatedConstraint = SymbolicRangeInferrer::inferRange( in assign()
2101 LLVM_NODISCARD Optional<bool> interpreteAsBool(RangeSet Constraint) { in interpreteAsBool()
2115 RangeSet::Factory &RangeFactory;
2136 for (std::pair<EquivalenceClass, RangeSet> ClassConstraint : Constraints) { in assignSymExprToConst()
2161 RangeSet Constraint) { in assignSymSymExprToRangeSet()
2203 for (std::pair<EquivalenceClass, RangeSet> ClassConstraint : Constraints) { in getConstraintMap()
2241 inline ProgramStateRef EquivalenceClass::merge(RangeSet::Factory &F, in merge()
2251 inline ProgramStateRef EquivalenceClass::merge(RangeSet::Factory &F, in merge()
2286 EquivalenceClass::mergeImpl(RangeSet::Factory &RangeFactory, in mergeImpl()
2308 if (Optional<RangeSet> NewClassConstraint = in mergeImpl()
2422 inline ProgramStateRef EquivalenceClass::markDisequal(RangeSet::Factory &RF, in markDisequal()
2429 inline ProgramStateRef EquivalenceClass::markDisequal(RangeSet::Factory &RF, in markDisequal()
2437 EquivalenceClass::markDisequal(RangeSet::Factory &RF, ProgramStateRef State, in markDisequal()
2467 RangeSet::Factory &RF, ProgramStateRef State, EquivalenceClass First, in addToDisequalityInfo()
2487 if (const RangeSet *SecondConstraint = Constraints.lookup(Second)) in addToDisequalityInfo()
2490 RangeSet FirstConstraint = SymbolicRangeInferrer::inferRange( in addToDisequalityInfo()
2560 const RangeSet *Constraint, in reAssume()
2591 EquivalenceClass::simplify(SValBuilder &SVB, RangeSet::Factory &F, in simplify()
2603 const RangeSet *ClassConstraint = getConstraint(State, Class); in simplify()
2627 const RangeSet *ClassConstraint = getConstraint(State, Class); in simplify()
2767 const RangeSet *Ranges = getConstraint(State, Sym); in checkNull()
2791 const RangeSet *T = getConstraint(St, Sym); in getSymVal()
2862 for (std::pair<EquivalenceClass, RangeSet> ClassConstraintPair : in removeDeadBindings()
2935 RangeSet RangeConstraintManager::getRange(ProgramStateRef State, in getRange()
2942 RangeSet Range) { in setRange()
2968 RangeSet New = getRange(St, Sym); in assumeSymNE()
2985 RangeSet New = getRange(St, Sym); in assumeSymEQ()
2991 RangeSet RangeConstraintManager::getSymLTRange(ProgramStateRef St, in getSymLTRange()
3016 RangeSet Result = getRange(St, Sym); in getSymLTRange()
3024 RangeSet New = getSymLTRange(St, Sym, Int, Adjustment); in assumeSymLT()
3028 RangeSet RangeConstraintManager::getSymGTRange(ProgramStateRef St, in getSymGTRange()
3053 RangeSet SymRange = getRange(St, Sym); in getSymGTRange()
3061 RangeSet New = getSymGTRange(St, Sym, Int, Adjustment); in assumeSymGT()
3065 RangeSet RangeConstraintManager::getSymGERange(ProgramStateRef St, in getSymGERange()
3090 RangeSet SymRange = getRange(St, Sym); in getSymGERange()
3098 RangeSet New = getSymGERange(St, Sym, Int, Adjustment); in assumeSymGE()
3102 RangeSet
3103 RangeConstraintManager::getSymLERange(llvm::function_ref<RangeSet()> RS, in getSymLERange()
3127 RangeSet Default = RS(); in getSymLERange()
3131 RangeSet RangeConstraintManager::getSymLERange(ProgramStateRef St, in getSymLERange()
3142 RangeSet New = getSymLERange(St, Sym, Int, Adjustment); in assumeSymLE()
3149 RangeSet New = getSymGERange(State, Sym, From, Adjustment); in assumeSymWithinInclusiveRange()
3152 RangeSet Out = getSymLERange([&] { return New; }, To, Adjustment); in assumeSymWithinInclusiveRange()
3159 RangeSet RangeLT = getSymLTRange(State, Sym, From, Adjustment); in assumeSymOutsideInclusiveRange()
3160 RangeSet RangeGT = getSymGTRange(State, Sym, To, Adjustment); in assumeSymOutsideInclusiveRange()
3161 RangeSet New(F.add(RangeLT, RangeGT)); in assumeSymOutsideInclusiveRange()
3179 const RangeSet RS = getRange(State, Sym); in printValue()
3204 std::map<std::string, RangeSet> OrderedConstraints; in printConstraints()
3205 for (std::pair<EquivalenceClass, RangeSet> P : Constraints) { in printConstraints()
3219 for (std::pair<std::string, RangeSet> P : OrderedConstraints) { in printConstraints()