return WList->hasWork();
}
-void GRCoreEngineImpl::HandleBlockEdge(const BlockEdge& L, ExplodedNodeImpl* Pred) {
+void GRCoreEngineImpl::HandleBlockEdge(const BlockEdge& L,
+ ExplodedNodeImpl* Pred) {
CFGBlock* Blk = L.getDst();
}
void GRCoreEngineImpl::HandleBlockEntrance(const BlockEntrance& L,
- ExplodedNodeImpl* Pred) {
+ ExplodedNodeImpl* Pred) {
// Increment the block counter.
GRBlockCounter Counter = WList->getBlockCounter();
return StateMgr.SetRVal(St, Ex, V, isBlkExpr, false);
}
-#if 0
-const ValueState::BufferTy&
-GRExprEngine::SetRVal(ValueState* St, Expr* Ex, const RVal::BufferTy& RB,
- ValueState::BufferTy& RetBuf) {
-
- assert (RetBuf.empty());
-
- for (RVal::BufferTy::const_iterator I = RB.begin(), E = RB.end(); I!=E; ++I)
- RetBuf.push_back(SetRVal(St, Ex, *I));
-
- return RetBuf;
-}
-#endif
-
ValueState* GRExprEngine::SetRVal(ValueState* St, LVal LV, RVal RV) {
if (!StateCleaned) {
AD.Observer->ObserveStmt(S,AD,LiveState);
if (S == getCurrentBlkStmt()) {
- if (getCFG().isBlkExpr(S)) LiveState(S,AD) = Dead;
+ assert (!isa<Expr>(S) || getCFG().isBlkExpr(S));
+ if (isa<Expr>(S)) LiveState(S,AD) = Dead;
StmtVisitor<TransferFuncs,void>::Visit(S);
}
else if (!getCFG().isBlkExpr(S))