diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/Analysis/PathSensitive/GRExprEngine.h | 12 | ||||
-rw-r--r-- | clang/include/clang/Analysis/PathSensitive/SVals.h | 2 | ||||
-rw-r--r-- | clang/include/clang/Analysis/PathSensitive/ValueManager.h | 3 | ||||
-rw-r--r-- | clang/lib/Analysis/GRExprEngine.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Analysis/SVals.cpp | 2 |
5 files changed, 11 insertions, 11 deletions
diff --git a/clang/include/clang/Analysis/PathSensitive/GRExprEngine.h b/clang/include/clang/Analysis/PathSensitive/GRExprEngine.h index 9c401bedc2e..29acc707da6 100644 --- a/clang/include/clang/Analysis/PathSensitive/GRExprEngine.h +++ b/clang/include/clang/Analysis/PathSensitive/GRExprEngine.h @@ -63,6 +63,9 @@ protected: /// SymMgr - Object that manages the symbol information. SymbolManager& SymMgr; + /// ValMgr - Object that manages/creates SVals. + ValueManager &ValMgr; + /// EntryNode - The immediate predecessor node. NodeTy* EntryNode; @@ -465,13 +468,8 @@ public: return StateMgr.getBasicVals(); } - ValueManager &getValueManager() { - return StateMgr.getValueManager(); - } - - const ValueManager &getValueManager() const { - return StateMgr.getValueManager(); - } + ValueManager &getValueManager() { return ValMgr; } + const ValueManager &getValueManager() const { return ValMgr; } // FIXME: Remove when we migrate over to just using ValueManager. SymbolManager& getSymbolManager() { return SymMgr; } diff --git a/clang/include/clang/Analysis/PathSensitive/SVals.h b/clang/include/clang/Analysis/PathSensitive/SVals.h index f3a2d369e75..df407801815 100644 --- a/clang/include/clang/Analysis/PathSensitive/SVals.h +++ b/clang/include/clang/Analysis/PathSensitive/SVals.h @@ -97,8 +97,6 @@ public: return getRawKind() > UnknownKind; } - static SVal MakeZero(BasicValueFactory &BasicVals, QualType T); - bool isZeroConstant() const; /// getAsLocSymbol - If this SVal is a location (subclasses Loc) and diff --git a/clang/include/clang/Analysis/PathSensitive/ValueManager.h b/clang/include/clang/Analysis/PathSensitive/ValueManager.h index b60c86d31a9..28aa791c023 100644 --- a/clang/include/clang/Analysis/PathSensitive/ValueManager.h +++ b/clang/include/clang/Analysis/PathSensitive/ValueManager.h @@ -77,6 +77,9 @@ public: Loc makeRegionVal(SymbolRef Sym) { return Loc::MakeVal(MemMgr->getSymbolicRegion(Sym)); } + + /// makeZeroVal - Construct an SVal representing '0' for the specified type. + SVal makeZeroVal(QualType T); }; } // end clang namespace #endif diff --git a/clang/lib/Analysis/GRExprEngine.cpp b/clang/lib/Analysis/GRExprEngine.cpp index 1c596bb2b49..2a43b9a89ea 100644 --- a/clang/lib/Analysis/GRExprEngine.cpp +++ b/clang/lib/Analysis/GRExprEngine.cpp @@ -122,6 +122,7 @@ GRExprEngine::GRExprEngine(CFG& cfg, Decl& CD, ASTContext& Ctx, Builder(NULL), StateMgr(G.getContext(), SMC, CMC, G.getAllocator(), cfg, CD, L), SymMgr(StateMgr.getSymbolManager()), + ValMgr(StateMgr.getValueManager()), CurrentStmt(NULL), NSExceptionII(NULL), NSExceptionInstanceRaiseSelectors(NULL), RaiseSel(GetNullarySelector("raise", G.getContext())), @@ -1742,7 +1743,7 @@ void GRExprEngine::VisitObjCMessageExprDispatchHelper(ObjCMessageExpr* ME, // it most likely isn't nil. We should assume the semantics // of this case unless we have *a lot* more knowledge. // - SVal V = SVal::MakeZero(getBasicVals(), ME->getType()); + SVal V = ValMgr.makeZeroVal(ME->getType()); MakeNode(Dst, ME, Pred, BindExpr(StNull, ME, V)); return; } diff --git a/clang/lib/Analysis/SVals.cpp b/clang/lib/Analysis/SVals.cpp index b78eea72c9f..8fdc37fe737 100644 --- a/clang/lib/Analysis/SVals.cpp +++ b/clang/lib/Analysis/SVals.cpp @@ -205,7 +205,7 @@ SVal loc::ConcreteInt::EvalBinOp(BasicValueFactory& BasicVals, // Utility methods for constructing SVals. //===----------------------------------------------------------------------===// -SVal SVal::MakeZero(BasicValueFactory &BasicVals, QualType T) { +SVal ValueManager::makeZeroVal(QualType T) { if (Loc::IsLocType(T)) return Loc::MakeNull(BasicVals); |