forked from OSchip/llvm-project
Remove GRStateManager::getRegion/getSelfRegion().
llvm-svn: 74006
This commit is contained in:
parent
ca8f986f63
commit
8cf2021012
|
@ -198,6 +198,14 @@ public:
|
|||
const GRState *assumeInBound(SVal idx, SVal upperBound,
|
||||
bool assumption) const;
|
||||
|
||||
//==---------------------------------------------------------------------==//
|
||||
// Utility methods for getting regions.
|
||||
//==---------------------------------------------------------------------==//
|
||||
|
||||
const VarRegion* getRegion(const VarDecl* D) const;
|
||||
|
||||
const MemRegion* getSelfRegion() const;
|
||||
|
||||
//==---------------------------------------------------------------------==//
|
||||
// Binding and retrieving values to/from the environment and symbolic store.
|
||||
//==---------------------------------------------------------------------==//
|
||||
|
@ -431,18 +439,7 @@ private:
|
|||
/// Liveness - live-variables information of the ValueDecl* and block-level
|
||||
/// Expr* in the CFG. Used to get initial store and prune out dead state.
|
||||
LiveVariables& Liveness;
|
||||
|
||||
private:
|
||||
|
||||
Environment RemoveBlkExpr(const Environment& Env, Expr* E) {
|
||||
return EnvMgr.RemoveBlkExpr(Env, E);
|
||||
}
|
||||
|
||||
// FIXME: Remove when we do lazy initializaton of variable bindings.
|
||||
// const GRState* BindVar(const GRState* St, VarDecl* D, SVal V) {
|
||||
// return SetSVal(St, getLoc(D), V);
|
||||
// }
|
||||
|
||||
public:
|
||||
|
||||
GRStateManager(ASTContext& Ctx,
|
||||
|
@ -464,7 +461,7 @@ public:
|
|||
|
||||
~GRStateManager();
|
||||
|
||||
const GRState* getInitialState();
|
||||
const GRState *getInitialState();
|
||||
|
||||
ASTContext &getContext() { return ValueMgr.getContext(); }
|
||||
const ASTContext &getContext() const { return ValueMgr.getContext(); }
|
||||
|
@ -510,17 +507,6 @@ public:
|
|||
NewSt.Env = EnvMgr.RemoveSubExprBindings(NewSt.Env);
|
||||
return getPersistentState(NewSt);
|
||||
}
|
||||
|
||||
|
||||
// Utility methods for getting regions.
|
||||
|
||||
VarRegion* getRegion(const VarDecl* D) {
|
||||
return getRegionManager().getVarRegion(D);
|
||||
}
|
||||
|
||||
const MemRegion* getSelfRegion(const GRState* state) {
|
||||
return StoreMgr->getSelfRegion(state->getStore());
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -535,7 +535,7 @@ Store BasicStoreManager::getInitialStore() {
|
|||
|
||||
// Initialize globals and parameters to symbolic values.
|
||||
// Initialize local variables to undefined.
|
||||
const MemRegion *R = StateMgr.getRegion(VD);
|
||||
const MemRegion *R = ValMgr.getRegionManager().getVarRegion(VD);
|
||||
SVal X = (VD->hasGlobalStorage() || isa<ParmVarDecl>(VD) ||
|
||||
isa<ImplicitParamDecl>(VD))
|
||||
? ValMgr.getRegionValueSymbolVal(R)
|
||||
|
|
|
@ -3091,7 +3091,7 @@ void CFRefCount::EvalObjCMessageExpr(ExplodedNodeSet<GRState>& Dst,
|
|||
if (Expr* Receiver = ME->getReceiver()) {
|
||||
SVal X = St->getSValAsScalarOrLoc(Receiver);
|
||||
if (loc::MemRegionVal* L = dyn_cast<loc::MemRegionVal>(&X))
|
||||
if (L->getRegion() == Eng.getStateManager().getSelfRegion(St)) {
|
||||
if (L->getRegion() == St->getSelfRegion()) {
|
||||
// Update the summary to make the default argument effect
|
||||
// 'StopTracking'.
|
||||
Summ = Summaries.copySummary(Summ);
|
||||
|
|
|
@ -176,7 +176,7 @@ const GRState* GRExprEngine::getInitialState() {
|
|||
const ParmVarDecl *PD = FD->getParamDecl(0);
|
||||
QualType T = PD->getType();
|
||||
if (T->isIntegerType())
|
||||
if (const MemRegion *R = StateMgr.getRegion(PD)) {
|
||||
if (const MemRegion *R = state->getRegion(PD)) {
|
||||
SVal V = state->getSVal(loc::MemRegionVal(R));
|
||||
SVal Constraint = EvalBinOp(state, BinaryOperator::GT, V,
|
||||
ValMgr.makeZeroVal(T),
|
||||
|
@ -2253,7 +2253,7 @@ void GRExprEngine::VisitDeclStmt(DeclStmt* DS, NodeTy* Pred, NodeSet& Dst) {
|
|||
// update the state based on the new binding. If the GRTransferFunc
|
||||
// object doesn't do anything, just auto-propagate the current state.
|
||||
GRStmtNodeBuilderRef BuilderRef(Dst, *Builder, *this, *I, state, DS,true);
|
||||
getTF().EvalBind(BuilderRef, loc::MemRegionVal(StateMgr.getRegion(VD)),
|
||||
getTF().EvalBind(BuilderRef, loc::MemRegionVal(state->getRegion(VD)),
|
||||
InitVal);
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Reference in New Issue