Lines Matching defs:AddStmtChoice
184 /// might not normally need to be. AddStmtChoice records this
185 /// contextual information. If AddStmtChoice is 'NotAlwaysAdd', then
188 class AddStmtChoice {
192 AddStmtChoice(Kind a_kind = NotAlwaysAdd) : kind(a_kind) {}
199 AddStmtChoice withAlwaysAdd(bool alwaysAdd) const {
200 return AddStmtChoice(alwaysAdd ? AlwaysAdd : NotAlwaysAdd);
559 CFGBlock *VisitInitListExpr(InitListExpr *ILE, AddStmtChoice asc);
560 CFGBlock *VisitAddrLabelExpr(AddrLabelExpr *A, AddStmtChoice asc);
561 CFGBlock *VisitAttributedStmt(AttributedStmt *A, AddStmtChoice asc);
562 CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc);
564 CFGBlock *VisitCallExpr(CallExpr *C, AddStmtChoice asc);
566 CFGBlock *VisitChooseExpr(ChooseExpr *C, AddStmtChoice asc);
569 AddStmtChoice asc);
572 AddStmtChoice asc);
574 CFGBlock *VisitCXXConstructExpr(CXXConstructExpr *C, AddStmtChoice asc);
575 CFGBlock *VisitCXXNewExpr(CXXNewExpr *DE, AddStmtChoice asc);
576 CFGBlock *VisitCXXDeleteExpr(CXXDeleteExpr *DE, AddStmtChoice asc);
579 AddStmtChoice asc);
581 AddStmtChoice asc);
584 CFGBlock *VisitCXXTypeidExpr(CXXTypeidExpr *S, AddStmtChoice asc);
590 AddStmtChoice asc, bool ExternallyDestructed);
593 CFGBlock *VisitGCCAsmStmt(GCCAsmStmt *G, AddStmtChoice asc);
595 CFGBlock *VisitImplicitCastExpr(ImplicitCastExpr *E, AddStmtChoice asc);
596 CFGBlock *VisitConstantExpr(ConstantExpr *E, AddStmtChoice asc);
599 CFGBlock *VisitBlockExpr(BlockExpr *E, AddStmtChoice asc);
600 CFGBlock *VisitLambdaExpr(LambdaExpr *E, AddStmtChoice asc);
607 AddStmtChoice asc);
608 CFGBlock *VisitMemberExpr(MemberExpr *M, AddStmtChoice asc);
615 CFGBlock *VisitObjCMessageExpr(ObjCMessageExpr *E, AddStmtChoice asc);
619 AddStmtChoice asc);
624 CFGBlock *VisitStmtExpr(StmtExpr *S, AddStmtChoice asc);
627 AddStmtChoice asc);
628 CFGBlock *VisitUnaryOperator(UnaryOperator *U, AddStmtChoice asc);
630 CFGBlock *VisitArrayInitLoopExpr(ArrayInitLoopExpr *A, AddStmtChoice asc);
632 CFGBlock *Visit(Stmt *S, AddStmtChoice asc = AddStmtChoice::NotAlwaysAdd,
634 CFGBlock *VisitStmt(Stmt *S, AddStmtChoice asc);
636 CFGBlock *VisitNoRecurse(Expr *E, AddStmtChoice asc);
638 AddStmtChoice asc);
768 return Visit(S, AddStmtChoice::AlwaysAdd);
1378 inline bool AddStmtChoice::alwaysAdd(CFGBuilder &builder,
2191 CFGBlock *CFGBuilder::Visit(Stmt * S, AddStmtChoice asc,
2419 CFGBlock *CFGBuilder::VisitStmt(Stmt *S, AddStmtChoice asc) {
2443 CFGBlock *CFGBuilder::VisitInitListExpr(InitListExpr *ILE, AddStmtChoice asc) {
2467 AddStmtChoice asc) {
2486 AddStmtChoice asc) {
2503 CFGBlock *CFGBuilder::VisitUnaryOperator(UnaryOperator *U, AddStmtChoice asc) {
2512 return Visit(U->getSubExpr(), AddStmtChoice());
2620 AddStmtChoice asc) {
2657 CFGBlock *CFGBuilder::VisitNoRecurse(Expr *E, AddStmtChoice asc) {
2701 CFGBlock *CFGBuilder::VisitCallExpr(CallExpr *C, AddStmtChoice asc) {
2787 AddStmtChoice asc) {
2793 AddStmtChoice alwaysAdd = asc.withAlwaysAdd(true);
2831 CFGBlock *newBlock = Visit(S, AddStmtChoice::AlwaysAdd,
2847 AddStmtChoice asc) {
2858 AddStmtChoice alwaysAdd = asc.withAlwaysAdd(true);
3247 return Visit(O, AddStmtChoice::AlwaysAdd, /*ExternallyDestructed=*/true);
3266 AddStmtChoice asc) {
3424 CFGBlock *CFGBuilder::VisitBlockExpr(BlockExpr *E, AddStmtChoice asc) {
3436 CFGBlock *CFGBuilder::VisitLambdaExpr(LambdaExpr *E, AddStmtChoice asc) {
3483 CFGBlock *CFGBuilder::VisitGCCAsmStmt(GCCAsmStmt *G, AddStmtChoice asc) {
3688 AddStmtChoice asc) {
3696 CFGBlock *CFGBuilder::VisitMemberExpr(MemberExpr *M, AddStmtChoice asc) {
3762 AddStmtChoice::NotAlwaysAdd);
4003 AddStmtChoice asc) {
4070 return VisitStmt(S, AddStmtChoice::AlwaysAdd);
4133 AddStmtChoice asc) {
4159 return VisitStmt(T, AddStmtChoice::AlwaysAdd);
4162 CFGBlock *CFGBuilder::VisitCXXTypeidExpr(CXXTypeidExpr *S, AddStmtChoice asc) {
4307 AddStmtChoice asc) {
4331 CFGBlock *CFGBuilder::VisitStmtExpr(StmtExpr *SE, AddStmtChoice asc) {
4806 AddStmtChoice asc, bool ExternallyDestructed) {
4821 AddStmtChoice asc) {
4837 AddStmtChoice asc) {
4848 AddStmtChoice asc) {
4873 AddStmtChoice asc) {
4890 AddStmtChoice asc) {
4901 AddStmtChoice asc) {
4912 AddStmtChoice asc) {
4921 return Visit(E->getSubExpr(), AddStmtChoice());
4924 CFGBlock *CFGBuilder::VisitConstantExpr(ConstantExpr *E, AddStmtChoice asc) {
4925 return Visit(E->getSubExpr(), AddStmtChoice());
5194 AddStmtChoice asc) {