Remove SVal::MakeZero and replace it with ValueManager::makeZeroVal.
llvm-svn: 68711
This commit is contained in:
parent
b041085c17
commit
f8cb51c20e
|
|
@ -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; }
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue