@@ -1953,27 +1953,27 @@ class RangeConstraintManager : public RangedConstraintManager {
19531953 const llvm::APSInt &To, const llvm::APSInt &Adjustment) override ;
19541954
19551955private:
1956- RangeSet::Factory F;
1956+ mutable RangeSet::Factory F;
19571957
1958- RangeSet getRange (ProgramStateRef State, SymbolRef Sym);
1958+ RangeSet getRange (ProgramStateRef State, SymbolRef Sym) const ;
19591959 ProgramStateRef setRange (ProgramStateRef State, SymbolRef Sym,
19601960 RangeSet Range);
19611961
19621962 RangeSet getSymLTRange (ProgramStateRef St, SymbolRef Sym,
19631963 const llvm::APSInt &Int,
1964- const llvm::APSInt &Adjustment);
1964+ const llvm::APSInt &Adjustment) const ;
19651965 RangeSet getSymGTRange (ProgramStateRef St, SymbolRef Sym,
19661966 const llvm::APSInt &Int,
1967- const llvm::APSInt &Adjustment);
1967+ const llvm::APSInt &Adjustment) const ;
19681968 RangeSet getSymLERange (ProgramStateRef St, SymbolRef Sym,
19691969 const llvm::APSInt &Int,
1970- const llvm::APSInt &Adjustment);
1970+ const llvm::APSInt &Adjustment) const ;
19711971 RangeSet getSymLERange (llvm::function_ref<RangeSet()> RS,
19721972 const llvm::APSInt &Int,
1973- const llvm::APSInt &Adjustment);
1973+ const llvm::APSInt &Adjustment) const ;
19741974 RangeSet getSymGERange (ProgramStateRef St, SymbolRef Sym,
19751975 const llvm::APSInt &Int,
1976- const llvm::APSInt &Adjustment);
1976+ const llvm::APSInt &Adjustment) const ;
19771977};
19781978
19791979// ===----------------------------------------------------------------------===//
@@ -2880,21 +2880,18 @@ ConditionTruthVal RangeConstraintManager::checkNull(ProgramStateRef State,
28802880
28812881const llvm::APSInt *RangeConstraintManager::getSymVal (ProgramStateRef St,
28822882 SymbolRef Sym) const {
2883- auto &MutableSelf = const_cast <RangeConstraintManager &>(*this );
2884- return MutableSelf.getRange (St, Sym).getConcreteValue ();
2883+ return getRange (St, Sym).getConcreteValue ();
28852884}
28862885
28872886const llvm::APSInt *RangeConstraintManager::getSymMinVal (ProgramStateRef St,
28882887 SymbolRef Sym) const {
2889- auto &MutableSelf = const_cast <RangeConstraintManager &>(*this );
2890- RangeSet Range = MutableSelf.getRange (St, Sym);
2888+ RangeSet Range = getRange (St, Sym);
28912889 return Range.isEmpty () ? nullptr : &Range.getMinValue ();
28922890}
28932891
28942892const llvm::APSInt *RangeConstraintManager::getSymMaxVal (ProgramStateRef St,
28952893 SymbolRef Sym) const {
2896- auto &MutableSelf = const_cast <RangeConstraintManager &>(*this );
2897- RangeSet Range = MutableSelf.getRange (St, Sym);
2894+ RangeSet Range = getRange (St, Sym);
28982895 return Range.isEmpty () ? nullptr : &Range.getMaxValue ();
28992896}
29002897
@@ -3039,7 +3036,7 @@ RangeConstraintManager::removeDeadBindings(ProgramStateRef State,
30393036}
30403037
30413038RangeSet RangeConstraintManager::getRange (ProgramStateRef State,
3042- SymbolRef Sym) {
3039+ SymbolRef Sym) const {
30433040 return SymbolicRangeInferrer::inferRange (F, State, Sym);
30443041}
30453042
@@ -3094,10 +3091,10 @@ RangeConstraintManager::assumeSymEQ(ProgramStateRef St, SymbolRef Sym,
30943091 return setRange (St, Sym, New);
30953092}
30963093
3097- RangeSet RangeConstraintManager::getSymLTRange (ProgramStateRef St,
3098- SymbolRef Sym,
3099- const llvm::APSInt &Int,
3100- const llvm::APSInt &Adjustment) {
3094+ RangeSet
3095+ RangeConstraintManager::getSymLTRange (ProgramStateRef St, SymbolRef Sym,
3096+ const llvm::APSInt &Int,
3097+ const llvm::APSInt &Adjustment) const {
31013098 // Before we do any real work, see if the value can even show up.
31023099 APSIntType AdjustmentType (Adjustment);
31033100 switch (AdjustmentType.testInRange (Int, true )) {
@@ -3131,10 +3128,10 @@ RangeConstraintManager::assumeSymLT(ProgramStateRef St, SymbolRef Sym,
31313128 return setRange (St, Sym, New);
31323129}
31333130
3134- RangeSet RangeConstraintManager::getSymGTRange (ProgramStateRef St,
3135- SymbolRef Sym,
3136- const llvm::APSInt &Int,
3137- const llvm::APSInt &Adjustment) {
3131+ RangeSet
3132+ RangeConstraintManager::getSymGTRange (ProgramStateRef St, SymbolRef Sym,
3133+ const llvm::APSInt &Int,
3134+ const llvm::APSInt &Adjustment) const {
31383135 // Before we do any real work, see if the value can even show up.
31393136 APSIntType AdjustmentType (Adjustment);
31403137 switch (AdjustmentType.testInRange (Int, true )) {
@@ -3168,10 +3165,10 @@ RangeConstraintManager::assumeSymGT(ProgramStateRef St, SymbolRef Sym,
31683165 return setRange (St, Sym, New);
31693166}
31703167
3171- RangeSet RangeConstraintManager::getSymGERange (ProgramStateRef St,
3172- SymbolRef Sym,
3173- const llvm::APSInt &Int,
3174- const llvm::APSInt &Adjustment) {
3168+ RangeSet
3169+ RangeConstraintManager::getSymGERange (ProgramStateRef St, SymbolRef Sym,
3170+ const llvm::APSInt &Int,
3171+ const llvm::APSInt &Adjustment) const {
31753172 // Before we do any real work, see if the value can even show up.
31763173 APSIntType AdjustmentType (Adjustment);
31773174 switch (AdjustmentType.testInRange (Int, true )) {
@@ -3208,7 +3205,7 @@ RangeConstraintManager::assumeSymGE(ProgramStateRef St, SymbolRef Sym,
32083205RangeSet
32093206RangeConstraintManager::getSymLERange (llvm::function_ref<RangeSet()> RS,
32103207 const llvm::APSInt &Int,
3211- const llvm::APSInt &Adjustment) {
3208+ const llvm::APSInt &Adjustment) const {
32123209 // Before we do any real work, see if the value can even show up.
32133210 APSIntType AdjustmentType (Adjustment);
32143211 switch (AdjustmentType.testInRange (Int, true )) {
@@ -3234,10 +3231,10 @@ RangeConstraintManager::getSymLERange(llvm::function_ref<RangeSet()> RS,
32343231 return F.intersect (Default, Lower, Upper);
32353232}
32363233
3237- RangeSet RangeConstraintManager::getSymLERange (ProgramStateRef St,
3238- SymbolRef Sym,
3239- const llvm::APSInt &Int,
3240- const llvm::APSInt &Adjustment) {
3234+ RangeSet
3235+ RangeConstraintManager::getSymLERange (ProgramStateRef St, SymbolRef Sym,
3236+ const llvm::APSInt &Int,
3237+ const llvm::APSInt &Adjustment) const {
32413238 return getSymLERange ([&] { return getRange (St, Sym); }, Int, Adjustment);
32423239}
32433240
0 commit comments