Lines Matching defs:Pred

182 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc,
187 HandleBlockEdge(Loc.castAs<BlockEdge>(), Pred);
191 HandleBlockEntrance(Loc.castAs<BlockEntrance>(), Pred);
199 HandleCallEnter(Loc.castAs<CallEnter>(), Pred);
203 ExprEng.processCallExit(Pred);
207 assert(Pred->hasSinglePred() &&
209 ExplodedNode *PNode = Pred->getFirstPred();
210 dispatchWorkItem(Pred, PNode->getLocation(), WU);
220 HandlePostStmt(WU.getBlock(), WU.getIndex(), Pred);
225 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) {
227 NodeBuilderContext BuilderCtx(*this, Blk, Pred);
230 const LocationContext *LC = Pred->getLocationContext();
249 NodeBuilder Bldr(Pred, Dst, BuilderCtx);
250 Pred = Bldr.generateNode(P, Pred->getState(), Pred);
251 if (!Pred)
273 ExprEng.processEndOfFunction(BuilderCtx, Pred, RS);
281 BlockEntrance BE(Blk, Pred->getLocationContext());
282 NodeBuilderWithSinks nodeBuilder(Pred, dstNodes, BuilderCtx, BE);
283 ExprEng.processCFGBlockEntrance(L, nodeBuilder, Pred);
287 nodeBuilder.generateNode(Pred->State, Pred);
295 ExplodedNode *Pred) {
297 const LocationContext *LC = Pred->getLocationContext();
306 NodeBuilderContext Ctx(*this, L.getBlock(), Pred);
307 ExprEng.processCFGElement(*E, Pred, 0, &Ctx);
309 HandleBlockExit(L.getBlock(), Pred);
312 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) {
320 cast<CXXBindTemporaryExpr>(Term), B, Pred);
325 HandleStaticInit(cast<DeclStmt>(Term), B, Pred);
329 HandleBranch(cast<BinaryOperator>(Term)->getLHS(), Term, B, Pred);
335 Term, B, Pred);
342 HandleBranch(cast<ChooseExpr>(Term)->getCond(), Term, B, Pred);
351 generateNode(BlockEdge(B, succ, Pred->getLocationContext()),
352 Pred->State, Pred);
358 HandleBranch(cast<DoStmt>(Term)->getCond(), Term, B, Pred);
362 HandleBranch(cast<CXXForRangeStmt>(Term)->getCond(), Term, B, Pred);
366 HandleBranch(cast<ForStmt>(Term)->getCond(), Term, B, Pred);
376 HandleBranch(cast<IfStmt>(Term)->getCond(), Term, B, Pred);
384 builder(Pred, B, cast<IndirectGotoStmt>(Term)->getTarget(),
402 HandleBranch(Term, Term, B, Pred);
406 SwitchNodeBuilder builder(Pred, B, cast<SwitchStmt>(Term)->getCond(),
414 HandleBranch(cast<WhileStmt>(Term)->getCond(), Term, B, Pred);
425 HandleVirtualBaseBranch(B, Pred);
432 generateNode(BlockEdge(B, *(B->succ_begin()), Pred->getLocationContext()),
433 Pred->State, Pred);
436 void CoreEngine::HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred) {
437 NodeBuilderContext BuilderCtx(*this, CE.getEntry(), Pred);
438 ExprEng.processCallEnter(BuilderCtx, CE, Pred);
442 const CFGBlock * B, ExplodedNode *Pred) {
444 NodeBuilderContext Ctx(*this, B, Pred);
446 ExprEng.processBranch(Cond, Ctx, Pred, Dst, *(B->succ_begin()),
448 getCompletedIterationCount(B, Pred));
455 ExplodedNode *Pred) {
457 NodeBuilderContext Ctx(*this, B, Pred);
459 ExprEng.processCleanupTemporaryBranch(BTE, Ctx, Pred, Dst, *(B->succ_begin()),
466 ExplodedNode *Pred) {
468 NodeBuilderContext Ctx(*this, B, Pred);
470 ExprEng.processStaticInitializer(DS, Ctx, Pred, Dst,
477 ExplodedNode *Pred) {
482 HandleBlockExit(B, Pred);
484 NodeBuilderContext Ctx(*this, B, Pred);
485 ExprEng.processCFGElement((*B)[StmtIdx], Pred, StmtIdx, &Ctx);
490 ExplodedNode *Pred) {
491 const LocationContext *LCtx = Pred->getLocationContext();
498 HandleBlockEdge(Loc, Pred);
509 HandleBlockEdge(Loc, Pred);
516 ExplodedNode *Pred) {
520 if (Pred)
521 Node->addPredecessor(Pred, G); // Link 'Node' with its predecessor.
597 ExplodedNode *Pred) const {
598 const LocationContext *LC = Pred->getLocationContext();
696 Eng.G.getNode(BlockEdge(Src, I.getBlock(), Pred->getLocationContext()),
698 Succ->addPredecessor(Pred, Eng.G);
714 Eng.G.getNode(BlockEdge(Src, I.getBlock(), Pred->getLocationContext()),
716 Succ->addPredecessor(Pred, Eng.G);
738 Eng.G.getNode(BlockEdge(Src, DefaultBlock, Pred->getLocationContext()),
740 Succ->addPredecessor(Pred, Eng.G);