Lines Matching refs:STMT
26 #include "clang/AST/Stmt.h"
83 /// the node's dynamic type, until the top-most class (e.g. Stmt,
95 /// TraverseStmt(Stmt *x) and TraverseType(QualType x) work
160 bool TraverseStmt(Stmt *S);
242 // Declare Traverse*() for all concrete Stmt classes.
243 #define ABSTRACT_STMT(STMT)
244 #define STMT(CLASS, PARENT) \
247 // The above header #undefs ABSTRACT_STMT and STMT upon exit.
249 // Define WalkUpFrom*() and empty Visit*() for all Stmt classes.
250 bool WalkUpFromStmt(Stmt *S) { return getDerived().VisitStmt(S); }
251 bool VisitStmt(Stmt *S) { return true; }
252 #define STMT(CLASS, PARENT) \
407 typedef SmallVector<Stmt *, 16> StmtsTy;
435 void queue(Stmt *S) {
445 bool RecursiveASTVisitor<Derived>::TraverseStmt(Stmt *S) {
464 // optimizer (e.g. LLVM) will fold this comparison into the switch stmt
494 // Top switch stmt: dispatch to TraverseFooStmt for each concrete FooStmt.
496 case Stmt::NoStmtClass: break;
497 #define ABSTRACT_STMT(STMT)
498 #define STMT(CLASS, PARENT) \
499 case Stmt::CLASS##Class: DISPATCH_STMT(CLASS, CLASS, S);
504 for (SmallVector<Stmt *, 8>::reverse_iterator
1734 // ----------------- Stmt traversal -----------------
1737 // over the children defined in children() (every stmt defines these,
1743 // This macro makes available a variable S, the passed-in stmt.
1744 #define DEF_TRAVERSE_STMT(STMT, CODE) \
1746 bool RecursiveASTVisitor<Derived>::Traverse##STMT (STMT *S) { \
1747 TRY_TO(WalkUpFrom##STMT(S)); \
1750 for (Stmt::child_range range = S->children(); range; ++range) { \
1901 for (Stmt::child_range range = S->children(); range; ++range) {