Remove SVal::MakeZero and replace it with ValueManager::makeZeroVal.

llvm-svn: 68711
This commit is contained in:
Ted Kremenek 2009-04-09 16:46:55 +00:00
parent b041085c17
commit f8cb51c20e
5 changed files with 11 additions and 11 deletions

View File

@ -63,6 +63,9 @@ protected:
/// SymMgr - Object that manages the symbol information. /// SymMgr - Object that manages the symbol information.
SymbolManager& SymMgr; SymbolManager& SymMgr;
/// ValMgr - Object that manages/creates SVals.
ValueManager &ValMgr;
/// EntryNode - The immediate predecessor node. /// EntryNode - The immediate predecessor node.
NodeTy* EntryNode; NodeTy* EntryNode;
@ -465,13 +468,8 @@ public:
return StateMgr.getBasicVals(); return StateMgr.getBasicVals();
} }
ValueManager &getValueManager() { ValueManager &getValueManager() { return ValMgr; }
return StateMgr.getValueManager(); const ValueManager &getValueManager() const { return ValMgr; }
}
const ValueManager &getValueManager() const {
return StateMgr.getValueManager();
}
// FIXME: Remove when we migrate over to just using ValueManager. // FIXME: Remove when we migrate over to just using ValueManager.
SymbolManager& getSymbolManager() { return SymMgr; } SymbolManager& getSymbolManager() { return SymMgr; }

View File

@ -97,8 +97,6 @@ public:
return getRawKind() > UnknownKind; return getRawKind() > UnknownKind;
} }
static SVal MakeZero(BasicValueFactory &BasicVals, QualType T);
bool isZeroConstant() const; bool isZeroConstant() const;
/// getAsLocSymbol - If this SVal is a location (subclasses Loc) and /// getAsLocSymbol - If this SVal is a location (subclasses Loc) and

View File

@ -77,6 +77,9 @@ public:
Loc makeRegionVal(SymbolRef Sym) { Loc makeRegionVal(SymbolRef Sym) {
return Loc::MakeVal(MemMgr->getSymbolicRegion(Sym)); return Loc::MakeVal(MemMgr->getSymbolicRegion(Sym));
} }
/// makeZeroVal - Construct an SVal representing '0' for the specified type.
SVal makeZeroVal(QualType T);
}; };
} // end clang namespace } // end clang namespace
#endif #endif

View File

@ -122,6 +122,7 @@ GRExprEngine::GRExprEngine(CFG& cfg, Decl& CD, ASTContext& Ctx,
Builder(NULL), Builder(NULL),
StateMgr(G.getContext(), SMC, CMC, G.getAllocator(), cfg, CD, L), StateMgr(G.getContext(), SMC, CMC, G.getAllocator(), cfg, CD, L),
SymMgr(StateMgr.getSymbolManager()), SymMgr(StateMgr.getSymbolManager()),
ValMgr(StateMgr.getValueManager()),
CurrentStmt(NULL), CurrentStmt(NULL),
NSExceptionII(NULL), NSExceptionInstanceRaiseSelectors(NULL), NSExceptionII(NULL), NSExceptionInstanceRaiseSelectors(NULL),
RaiseSel(GetNullarySelector("raise", G.getContext())), 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 // it most likely isn't nil. We should assume the semantics
// of this case unless we have *a lot* more knowledge. // 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)); MakeNode(Dst, ME, Pred, BindExpr(StNull, ME, V));
return; return;
} }

View File

@ -205,7 +205,7 @@ SVal loc::ConcreteInt::EvalBinOp(BasicValueFactory& BasicVals,
// Utility methods for constructing SVals. // Utility methods for constructing SVals.
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
SVal SVal::MakeZero(BasicValueFactory &BasicVals, QualType T) { SVal ValueManager::makeZeroVal(QualType T) {
if (Loc::IsLocType(T)) if (Loc::IsLocType(T))
return Loc::MakeNull(BasicVals); return Loc::MakeNull(BasicVals);