[analyzer] Remove recursive visitation in ExprEngine::VisitLValObjCIvarRefExpr because it isn't needed anymore.
llvm-svn: 136517
This commit is contained in:
parent
003ec6ff83
commit
4e577fae2c
|
@ -1799,23 +1799,12 @@ void ExprEngine::VisitLvalObjCIvarRefExpr(const ObjCIvarRefExpr* Ex,
|
|||
ExplodedNode* Pred,
|
||||
ExplodedNodeSet& Dst) {
|
||||
|
||||
// Visit the base expression, which is needed for computing the lvalue
|
||||
// of the ivar.
|
||||
ExplodedNodeSet dstBase;
|
||||
const Expr *baseExpr = Ex->getBase();
|
||||
Visit(baseExpr, Pred, dstBase);
|
||||
const GRState *state = GetState(Pred);
|
||||
SVal baseVal = state->getSVal(Ex->getBase());
|
||||
SVal location = state->getLValue(Ex->getDecl(), baseVal);
|
||||
|
||||
ExplodedNodeSet dstIvar;
|
||||
|
||||
// Using the base, compute the lvalue of the instance variable.
|
||||
for (ExplodedNodeSet::iterator I = dstBase.begin(), E = dstBase.end();
|
||||
I!=E; ++I) {
|
||||
ExplodedNode *nodeBase = *I;
|
||||
const GRState *state = GetState(nodeBase);
|
||||
SVal baseVal = state->getSVal(baseExpr);
|
||||
SVal location = state->getLValue(Ex->getDecl(), baseVal);
|
||||
MakeNode(dstIvar, Ex, *I, state->BindExpr(Ex, location));
|
||||
}
|
||||
MakeNode(dstIvar, Ex, Pred, state->BindExpr(Ex, location));
|
||||
|
||||
// Perform the post-condition check of the ObjCIvarRefExpr and store
|
||||
// the created nodes in 'Dst'.
|
||||
|
|
Loading…
Reference in New Issue