Lines Matching refs:Pred

182 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc,  in dispatchWorkItem()  argument
187 HandleBlockEdge(Loc.castAs<BlockEdge>(), Pred); in dispatchWorkItem()
191 HandleBlockEntrance(Loc.castAs<BlockEntrance>(), Pred); in dispatchWorkItem()
199 HandleCallEnter(Loc.castAs<CallEnter>(), Pred); in dispatchWorkItem()
203 ExprEng.processCallExit(Pred); in dispatchWorkItem()
207 assert(Pred->hasSinglePred() && in dispatchWorkItem()
209 ExplodedNode *PNode = Pred->getFirstPred(); in dispatchWorkItem()
210 dispatchWorkItem(Pred, PNode->getLocation(), WU); in dispatchWorkItem()
220 HandlePostStmt(WU.getBlock(), WU.getIndex(), Pred); in dispatchWorkItem()
237 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) { in HandleBlockEdge() argument
239 NodeBuilderContext BuilderCtx(*this, Blk, Pred); in HandleBlockEdge()
242 const LocationContext *LC = Pred->getLocationContext(); in HandleBlockEdge()
261 NodeBuilder Bldr(Pred, Dst, BuilderCtx); in HandleBlockEdge()
262 Pred = Bldr.generateNode(P, Pred->getState(), Pred); in HandleBlockEdge()
263 if (!Pred) in HandleBlockEdge()
285 ExprEng.processEndOfFunction(BuilderCtx, Pred, RS); in HandleBlockEdge()
293 BlockEntrance BE(Blk, Pred->getLocationContext()); in HandleBlockEdge()
294 NodeBuilderWithSinks nodeBuilder(Pred, dstNodes, BuilderCtx, BE); in HandleBlockEdge()
295 ExprEng.processCFGBlockEntrance(L, nodeBuilder, Pred); in HandleBlockEdge()
299 nodeBuilder.generateNode(Pred->State, Pred); in HandleBlockEdge()
307 ExplodedNode *Pred) { in HandleBlockEntrance() argument
309 const LocationContext *LC = Pred->getLocationContext(); in HandleBlockEntrance()
318 NodeBuilderContext Ctx(*this, L.getBlock(), Pred); in HandleBlockEntrance()
319 ExprEng.processCFGElement(*E, Pred, 0, &Ctx); in HandleBlockEntrance()
322 HandleBlockExit(L.getBlock(), Pred); in HandleBlockEntrance()
325 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit() argument
333 cast<CXXBindTemporaryExpr>(Term), B, Pred); in HandleBlockExit()
338 HandleStaticInit(cast<DeclStmt>(Term), B, Pred); in HandleBlockExit()
342 HandleBranch(cast<BinaryOperator>(Term)->getLHS(), Term, B, Pred); in HandleBlockExit()
348 Term, B, Pred); in HandleBlockExit()
355 HandleBranch(cast<ChooseExpr>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
364 generateNode(BlockEdge(B, succ, Pred->getLocationContext()), in HandleBlockExit()
365 Pred->State, Pred); in HandleBlockExit()
371 HandleBranch(cast<DoStmt>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
375 HandleBranch(cast<CXXForRangeStmt>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
379 HandleBranch(cast<ForStmt>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
389 HandleBranch(cast<IfStmt>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
397 builder(Pred, B, cast<IndirectGotoStmt>(Term)->getTarget(), in HandleBlockExit()
415 HandleBranch(Term, Term, B, Pred); in HandleBlockExit()
419 SwitchNodeBuilder builder(Pred, B, cast<SwitchStmt>(Term)->getCond(), in HandleBlockExit()
427 HandleBranch(cast<WhileStmt>(Term)->getCond(), Term, B, Pred); in HandleBlockExit()
438 HandleVirtualBaseBranch(B, Pred); in HandleBlockExit()
445 generateNode(BlockEdge(B, *(B->succ_begin()), Pred->getLocationContext()), in HandleBlockExit()
446 Pred->State, Pred); in HandleBlockExit()
449 void CoreEngine::HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred) { in HandleCallEnter() argument
450 NodeBuilderContext BuilderCtx(*this, CE.getEntry(), Pred); in HandleCallEnter()
451 ExprEng.processCallEnter(BuilderCtx, CE, Pred); in HandleCallEnter()
455 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch() argument
457 NodeBuilderContext Ctx(*this, B, Pred); in HandleBranch()
459 ExprEng.processBranch(Cond, Ctx, Pred, Dst, *(B->succ_begin()), in HandleBranch()
467 ExplodedNode *Pred) { in HandleCleanupTemporaryBranch() argument
469 NodeBuilderContext Ctx(*this, B, Pred); in HandleCleanupTemporaryBranch()
471 ExprEng.processCleanupTemporaryBranch(BTE, Ctx, Pred, Dst, *(B->succ_begin()), in HandleCleanupTemporaryBranch()
478 ExplodedNode *Pred) { in HandleStaticInit() argument
480 NodeBuilderContext Ctx(*this, B, Pred); in HandleStaticInit()
482 ExprEng.processStaticInitializer(DS, Ctx, Pred, Dst, in HandleStaticInit()
489 ExplodedNode *Pred) { in HandlePostStmt() argument
494 HandleBlockExit(B, Pred); in HandlePostStmt()
496 NodeBuilderContext Ctx(*this, B, Pred); in HandlePostStmt()
497 ExprEng.processCFGElement((*B)[StmtIdx], Pred, StmtIdx, &Ctx); in HandlePostStmt()
502 ExplodedNode *Pred) { in HandleVirtualBaseBranch() argument
503 const LocationContext *LCtx = Pred->getLocationContext(); in HandleVirtualBaseBranch()
510 HandleBlockEdge(Loc, Pred); in HandleVirtualBaseBranch()
521 HandleBlockEdge(Loc, Pred); in HandleVirtualBaseBranch()
528 ExplodedNode *Pred) { in generateNode() argument
532 if (Pred) in generateNode()
533 Node->addPredecessor(Pred, G); // Link 'Node' with its predecessor. in generateNode()
683 Eng.G.getNode(BlockEdge(Src, I.getBlock(), Pred->getLocationContext()), in generateNode()
685 Succ->addPredecessor(Pred, Eng.G); in generateNode()
701 Eng.G.getNode(BlockEdge(Src, I.getBlock(), Pred->getLocationContext()), in generateCaseStmtNode()
703 Succ->addPredecessor(Pred, Eng.G); in generateCaseStmtNode()
725 Eng.G.getNode(BlockEdge(Src, DefaultBlock, Pred->getLocationContext()), in generateDefaultCaseNode()
727 Succ->addPredecessor(Pred, Eng.G); in generateDefaultCaseNode()