diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-01-05 00:15:18 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-01-05 00:15:18 +0000 |
commit | 32a58084a4c53e6938dd81bfce224db25a5976d1 (patch) | |
tree | b87110336d229ca6e376bb3f9809e71297b02c2c /lib/Analysis/RangeConstraintManager.cpp | |
parent | 51313c39c84407dd6a323be99a8c322bf8d052a9 (diff) |
Remove references to 'Checker' and 'GRTransferFuncs' from
GRStateManager. Having these references was an abstraction violation,
as they really should only be known about GRExprEngine.
This change required adding a new 'ProcessAssume' callback in
GRSubEngine. GRExprEngine implements this callback by calling
'EvalAssume' on all registered Checker objects as well as the
registered GRTransferFunc object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92549 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/RangeConstraintManager.cpp')
-rw-r--r-- | lib/Analysis/RangeConstraintManager.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Analysis/RangeConstraintManager.cpp b/lib/Analysis/RangeConstraintManager.cpp index 7330b62614..2cf3dfb6d0 100644 --- a/lib/Analysis/RangeConstraintManager.cpp +++ b/lib/Analysis/RangeConstraintManager.cpp @@ -234,7 +234,8 @@ namespace { class RangeConstraintManager : public SimpleConstraintManager{ RangeSet GetRange(const GRState *state, SymbolRef sym); public: - RangeConstraintManager() {} + RangeConstraintManager(GRSubEngine &subengine) + : SimpleConstraintManager(subengine) {} const GRState* AssumeSymNE(const GRState* St, SymbolRef sym, const llvm::APSInt& V); @@ -273,8 +274,9 @@ private: } // end anonymous namespace -ConstraintManager* clang::CreateRangeConstraintManager(GRStateManager&) { - return new RangeConstraintManager(); +ConstraintManager* clang::CreateRangeConstraintManager(GRStateManager&, + GRSubEngine &subeng) { + return new RangeConstraintManager(subeng); } const llvm::APSInt* RangeConstraintManager::getSymVal(const GRState* St, |