zcov: / include/clang/AST/StmtVisitor.h


Files: 1 Branches Taken: 31.7% 334 / 1052
Generated: 2010-02-10 01:31 Branches Executed: 92.3% 971 / 1052
Line Coverage: 88.5% 69 / 78


Programs: 29 Runs 56253


       1                 : //===--- StmtVisitor.h - Visitor for Stmt subclasses ------------*- C++ -*-===//
       2                 : //
       3                 : //                     The LLVM Compiler Infrastructure
       4                 : //
       5                 : // This file is distributed under the University of Illinois Open Source
       6                 : // License. See LICENSE.TXT for details.
       7                 : //
       8                 : //===----------------------------------------------------------------------===//
       9                 : //
      10                 : //  This file defines the StmtVisitor interface.
      11                 : //
      12                 : //===----------------------------------------------------------------------===//
      13                 : 
      14                 : #ifndef LLVM_CLANG_AST_STMTVISITOR_H
      15                 : #define LLVM_CLANG_AST_STMTVISITOR_H
      16                 : 
      17                 : #include "clang/AST/ExprCXX.h"
      18                 : #include "clang/AST/ExprObjC.h"
      19                 : #include "clang/AST/StmtCXX.h"
      20                 : #include "clang/AST/StmtObjC.h"
      21                 : 
      22                 : namespace clang {
      23                 : 
      24                 : #define DISPATCH(NAME, CLASS) \
      25                 :   return static_cast<ImplClass*>(this)->Visit ## NAME(static_cast<CLASS*>(S))
      26                 : 
      27                 : /// StmtVisitor - This class implements a simple visitor for Stmt subclasses.
      28                 : /// Since Expr derives from Stmt, this also includes support for visiting Exprs.
      29                 : template<typename ImplClass, typename RetTy=void>
      30            65638: class StmtVisitor {
      31                 : public:
      32           185531:   RetTy Visit(Stmt *S) {
      33                 : 
      34                 :     // If we have a binary expr, dispatch to the subcode of the binop.  A smart
      35                 :     // optimizer (e.g. LLVM) will fold this comparison into the switch stmt
      36                 :     // below.
                    10404: branch 1 taken
                   101841: branch 2 taken
                     6253: branch 4 taken
                    60582: branch 5 taken
                       96: branch 7 taken
                     3239: branch 8 taken
                        0: branch 10 not taken
                     1051: branch 11 taken
                        0: branch 13 not taken
                      755: branch 14 taken
                       34: branch 16 taken
                      988: branch 17 taken
                       70: branch 19 taken
                      218: branch 20 taken
      37           185531:     if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(S)) {
                        0: branch 1 not taken
                        4: branch 2 taken
                        0: branch 3 not taken
                      211: branch 4 taken
                      268: branch 5 taken
                       34: branch 6 taken
                      743: branch 7 taken
                      166: branch 8 taken
                      129: branch 9 taken
                       28: branch 10 taken
                      479: branch 11 taken
                      391: branch 12 taken
                       39: branch 13 taken
                       22: branch 14 taken
                     1618: branch 15 taken
                      665: branch 16 taken
                      120: branch 17 taken
                        8: branch 18 taken
                       77: branch 19 taken
                      156: branch 20 taken
                      105: branch 21 taken
                     4396: branch 22 taken
                       51: branch 23 taken
                      145: branch 24 taken
                        2: branch 25 taken
                      125: branch 26 taken
                       11: branch 27 taken
                       25: branch 28 taken
                        0: branch 29 not taken
                       64: branch 30 taken
                       32: branch 31 taken
                        0: branch 32 not taken
                      290: branch 33 taken
                        0: branch 35 not taken
                        0: branch 36 not taken
                        0: branch 37 not taken
                      135: branch 38 taken
                      175: branch 39 taken
                       23: branch 40 taken
                      657: branch 41 taken
                      569: branch 42 taken
                      287: branch 43 taken
                       24: branch 44 taken
                      392: branch 45 taken
                      192: branch 46 taken
                       29: branch 47 taken
                       22: branch 48 taken
                     1449: branch 49 taken
                      444: branch 50 taken
                      189: branch 51 taken
                       19: branch 52 taken
                      191: branch 53 taken
                       93: branch 54 taken
                       47: branch 55 taken
                     1152: branch 56 taken
                        1: branch 57 taken
                       40: branch 58 taken
                        0: branch 59 not taken
                       31: branch 60 taken
                        0: branch 61 not taken
                        9: branch 62 taken
                        0: branch 63 not taken
                       12: branch 64 taken
                        8: branch 65 taken
                        0: branch 66 not taken
                       63: branch 67 taken
                        0: branch 69 not taken
                        0: branch 70 not taken
                        0: branch 71 not taken
                        0: branch 72 not taken
                        0: branch 73 not taken
                        0: branch 74 not taken
                       43: branch 75 taken
                        6: branch 76 taken
                        0: branch 77 not taken
                        0: branch 78 not taken
                        0: branch 79 not taken
                        0: branch 80 not taken
                        0: branch 81 not taken
                        0: branch 82 not taken
                        0: branch 83 not taken
                        0: branch 84 not taken
                        0: branch 85 not taken
                        0: branch 86 not taken
                        0: branch 87 not taken
                        0: branch 88 not taken
                        0: branch 89 not taken
                       43: branch 90 taken
                        0: branch 91 not taken
                        0: branch 92 not taken
                        0: branch 93 not taken
                        2: branch 94 taken
                        0: branch 95 not taken
                        0: branch 96 not taken
                        0: branch 97 not taken
                        0: branch 98 not taken
                        0: branch 99 not taken
                        0: branch 100 not taken
                        2: branch 101 taken
                        0: branch 103 not taken
                        0: branch 104 not taken
                        0: branch 105 not taken
                        0: branch 106 not taken
                        0: branch 107 not taken
                        0: branch 108 not taken
                        0: branch 109 not taken
                        0: branch 110 not taken
                        0: branch 111 not taken
                        0: branch 112 not taken
                        0: branch 113 not taken
                        0: branch 114 not taken
                        0: branch 115 not taken
                        0: branch 116 not taken
                        0: branch 117 not taken
                        0: branch 118 not taken
                        0: branch 119 not taken
                        0: branch 120 not taken
                        0: branch 121 not taken
                        0: branch 122 not taken
                        0: branch 123 not taken
                        0: branch 124 not taken
                        0: branch 125 not taken
                        0: branch 126 not taken
                        0: branch 127 not taken
                        0: branch 128 not taken
                        0: branch 129 not taken
                        0: branch 130 not taken
                        0: branch 131 not taken
                        0: branch 132 not taken
                        0: branch 133 not taken
                        0: branch 134 not taken
                        0: branch 135 not taken
                        0: branch 137 not taken
                        0: branch 138 not taken
                        0: branch 139 not taken
                        0: branch 140 not taken
                        0: branch 141 not taken
                        0: branch 142 not taken
                        0: branch 143 not taken
                        0: branch 144 not taken
                        0: branch 145 not taken
                        0: branch 146 not taken
                        0: branch 147 not taken
                        0: branch 148 not taken
                        0: branch 149 not taken
                        0: branch 150 not taken
                        0: branch 151 not taken
                        0: branch 152 not taken
                        0: branch 153 not taken
                        0: branch 154 not taken
                        0: branch 155 not taken
                        0: branch 156 not taken
                        0: branch 157 not taken
                        0: branch 158 not taken
                        0: branch 159 not taken
                        0: branch 160 not taken
                        0: branch 161 not taken
                        0: branch 162 not taken
                        0: branch 163 not taken
                        0: branch 164 not taken
                        0: branch 165 not taken
                        0: branch 166 not taken
                        0: branch 167 not taken
                        0: branch 168 not taken
                        0: branch 169 not taken
                        0: branch 171 not taken
                        0: branch 172 not taken
                        0: branch 173 not taken
                        3: branch 174 taken
                        3: branch 175 taken
                        0: branch 176 not taken
                       26: branch 177 taken
                        1: branch 178 taken
                        0: branch 179 not taken
                        0: branch 180 not taken
                        0: branch 181 not taken
                        0: branch 182 not taken
                        0: branch 183 not taken
                        0: branch 184 not taken
                        0: branch 185 not taken
                        0: branch 186 not taken
                        0: branch 187 not taken
                        0: branch 188 not taken
                        0: branch 189 not taken
                        0: branch 190 not taken
                        0: branch 191 not taken
                        0: branch 192 not taken
                        0: branch 193 not taken
                        0: branch 194 not taken
                        0: branch 195 not taken
                        0: branch 196 not taken
                        0: branch 197 not taken
                        0: branch 198 not taken
                        0: branch 199 not taken
                        0: branch 200 not taken
                        0: branch 201 not taken
                        0: branch 202 not taken
                        1: branch 203 taken
                        0: branch 205 not taken
                        0: branch 206 not taken
                        0: branch 207 not taken
                       15: branch 208 taken
                        0: branch 209 not taken
                        0: branch 210 not taken
                       54: branch 211 taken
                        0: branch 212 not taken
                        0: branch 213 not taken
                        0: branch 214 not taken
                        0: branch 215 not taken
                        0: branch 216 not taken
                        0: branch 217 not taken
                        0: branch 218 not taken
                        0: branch 219 not taken
                        0: branch 220 not taken
                        0: branch 221 not taken
                        0: branch 222 not taken
                        0: branch 223 not taken
                        0: branch 224 not taken
                        0: branch 225 not taken
                        1: branch 226 taken
                        0: branch 227 not taken
                        0: branch 228 not taken
                        0: branch 229 not taken
                        0: branch 230 not taken
                        0: branch 231 not taken
                        0: branch 232 not taken
                        0: branch 233 not taken
                        0: branch 234 not taken
                        0: branch 235 not taken
                        0: branch 236 not taken
                        0: branch 237 not taken
      38            16857:       switch (BinOp->getOpcode()) {
      39                0:       default: assert(0 && "Unknown binary operator!");
      40                4:       case BinaryOperator::PtrMemD:   DISPATCH(BinPtrMemD,   BinaryOperator);
      41                0:       case BinaryOperator::PtrMemI:   DISPATCH(BinPtrMemI,   BinaryOperator);
      42              364:       case BinaryOperator::Mul:       DISPATCH(BinMul,       BinaryOperator);
      43              446:       case BinaryOperator::Div:       DISPATCH(BinDiv,       BinaryOperator);
      44               57:       case BinaryOperator::Rem:       DISPATCH(BinRem,       BinaryOperator);
      45             1523:       case BinaryOperator::Add:       DISPATCH(BinAdd,       BinaryOperator);
      46              742:       case BinaryOperator::Sub:       DISPATCH(BinSub,       BinaryOperator);
      47              416:       case BinaryOperator::Shl:       DISPATCH(BinShl,       BinaryOperator);
      48               52:       case BinaryOperator::Shr:       DISPATCH(BinShr,       BinaryOperator);
      49                 : 
      50              871:       case BinaryOperator::LT:        DISPATCH(BinLT,        BinaryOperator);
      51              583:       case BinaryOperator::GT:        DISPATCH(BinGT,        BinaryOperator);
      52               68:       case BinaryOperator::LE:        DISPATCH(BinLE,        BinaryOperator);
      53               44:       case BinaryOperator::GE:        DISPATCH(BinGE,        BinaryOperator);
      54             3067:       case BinaryOperator::EQ:        DISPATCH(BinEQ,        BinaryOperator);
      55             1109:       case BinaryOperator::NE:        DISPATCH(BinNE,        BinaryOperator);
      56                 : 
      57              309:       case BinaryOperator::And:       DISPATCH(BinAnd,       BinaryOperator);
      58               27:       case BinaryOperator::Xor:       DISPATCH(BinXor,       BinaryOperator);
      59              268:       case BinaryOperator::Or :       DISPATCH(BinOr,        BinaryOperator);
      60              249:       case BinaryOperator::LAnd:      DISPATCH(BinLAnd,      BinaryOperator);
      61              152:       case BinaryOperator::LOr :      DISPATCH(BinLOr,       BinaryOperator);
      62             5592:       case BinaryOperator::Assign:    DISPATCH(BinAssign,    BinaryOperator);
      63                 :       case BinaryOperator::MulAssign:
      64               52:         DISPATCH(BinMulAssign, CompoundAssignOperator);
      65                 :       case BinaryOperator::DivAssign:
      66              185:         DISPATCH(BinDivAssign, CompoundAssignOperator);
      67                 :       case BinaryOperator::RemAssign:
      68                2:         DISPATCH(BinRemAssign, CompoundAssignOperator);
      69                 :       case BinaryOperator::AddAssign:
      70              158:         DISPATCH(BinAddAssign, CompoundAssignOperator);
      71                 :       case BinaryOperator::SubAssign:
      72               11:         DISPATCH(BinSubAssign, CompoundAssignOperator);
      73                 :       case BinaryOperator::ShlAssign:
      74               34:         DISPATCH(BinShlAssign, CompoundAssignOperator);
      75                 :       case BinaryOperator::ShrAssign:
      76                0:         DISPATCH(BinShrAssign, CompoundAssignOperator);
      77                 :       case BinaryOperator::AndAssign:
      78               76:         DISPATCH(BinAndAssign, CompoundAssignOperator);
      79                 :       case BinaryOperator::OrAssign:
      80               40:         DISPATCH(BinOrAssign,  CompoundAssignOperator);
      81                 :       case BinaryOperator::XorAssign:
      82                0:         DISPATCH(BinXorAssign, CompoundAssignOperator);
      83              356:       case BinaryOperator::Comma:     DISPATCH(BinComma,     BinaryOperator);
      84                 :       }
                     7395: branch 1 taken
                    94446: branch 2 taken
                     2948: branch 4 taken
                    57634: branch 5 taken
                      290: branch 7 taken
                     2949: branch 8 taken
                      253: branch 10 taken
                      798: branch 11 taken
                        4: branch 13 taken
                      751: branch 14 taken
                       23: branch 16 taken
                      965: branch 17 taken
                        0: branch 19 not taken
                      218: branch 20 taken
      85           168674:     } else if (UnaryOperator *UnOp = dyn_cast<UnaryOperator>(S)) {
                        0: branch 1 not taken
                      452: branch 2 taken
                       16: branch 3 taken
                     1811: branch 4 taken
                       76: branch 5 taken
                     1512: branch 6 taken
                     2022: branch 7 taken
                       13: branch 8 taken
                       80: branch 9 taken
                       96: branch 10 taken
                      891: branch 11 taken
                       69: branch 12 taken
                       59: branch 13 taken
                       49: branch 14 taken
                      249: branch 15 taken
                        0: branch 17 not taken
                      126: branch 18 taken
                        1: branch 19 taken
                      230: branch 20 taken
                        4: branch 21 taken
                      449: branch 22 taken
                      849: branch 23 taken
                        4: branch 24 taken
                      206: branch 25 taken
                       42: branch 26 taken
                      664: branch 27 taken
                       10: branch 28 taken
                       10: branch 29 taken
                       23: branch 30 taken
                      330: branch 31 taken
                        0: branch 33 not taken
                       10: branch 34 taken
                        2: branch 35 taken
                        2: branch 36 taken
                        2: branch 37 taken
                      271: branch 38 taken
                        2: branch 39 taken
                        0: branch 40 not taken
                        0: branch 41 not taken
                        0: branch 42 not taken
                        0: branch 43 not taken
                        0: branch 44 not taken
                        0: branch 45 not taken
                        1: branch 46 taken
                        0: branch 47 not taken
                        0: branch 49 not taken
                        0: branch 50 not taken
                        0: branch 51 not taken
                        0: branch 52 not taken
                        0: branch 53 not taken
                        0: branch 54 not taken
                      253: branch 55 taken
                        0: branch 56 not taken
                        0: branch 57 not taken
                        0: branch 58 not taken
                        0: branch 59 not taken
                        0: branch 60 not taken
                        0: branch 61 not taken
                        0: branch 62 not taken
                        0: branch 63 not taken
                        0: branch 65 not taken
                        0: branch 66 not taken
                        0: branch 67 not taken
                        0: branch 68 not taken
                        0: branch 69 not taken
                        0: branch 70 not taken
                        2: branch 71 taken
                        0: branch 72 not taken
                        0: branch 73 not taken
                        0: branch 74 not taken
                        0: branch 75 not taken
                        1: branch 76 taken
                        1: branch 77 taken
                        0: branch 78 not taken
                        0: branch 79 not taken
                        0: branch 81 not taken
                        0: branch 82 not taken
                        0: branch 83 not taken
                        0: branch 84 not taken
                        0: branch 85 not taken
                        0: branch 86 not taken
                        1: branch 87 taken
                        0: branch 88 not taken
                       22: branch 89 taken
                        0: branch 90 not taken
                        0: branch 91 not taken
                        0: branch 92 not taken
                        0: branch 93 not taken
                        0: branch 94 not taken
                        0: branch 95 not taken
                        0: branch 97 not taken
                        0: branch 98 not taken
                        0: branch 99 not taken
                        0: branch 100 not taken
                        0: branch 101 not taken
                        0: branch 102 not taken
                        0: branch 103 not taken
                        0: branch 104 not taken
                        0: branch 105 not taken
                        0: branch 106 not taken
                        0: branch 107 not taken
                        0: branch 108 not taken
                        0: branch 109 not taken
                        0: branch 110 not taken
                        0: branch 111 not taken
      86            10913:       switch (UnOp->getOpcode()) {
      87                0:       default: assert(0 && "Unknown unary operator!");
      88              588:       case UnaryOperator::PostInc:      DISPATCH(UnaryPostInc,   UnaryOperator);
      89               19:       case UnaryOperator::PostDec:      DISPATCH(UnaryPostDec,   UnaryOperator);
      90             2043:       case UnaryOperator::PreInc:       DISPATCH(UnaryPreInc,    UnaryOperator);
      91               82:       case UnaryOperator::PreDec:       DISPATCH(UnaryPreDec,    UnaryOperator);
      92             2232:       case UnaryOperator::AddrOf:       DISPATCH(UnaryAddrOf,    UnaryOperator);
      93             3129:       case UnaryOperator::Deref:        DISPATCH(UnaryDeref,     UnaryOperator);
      94               17:       case UnaryOperator::Plus:         DISPATCH(UnaryPlus,      UnaryOperator);
      95              308:       case UnaryOperator::Minus:        DISPATCH(UnaryMinus,     UnaryOperator);
      96              138:       case UnaryOperator::Not:          DISPATCH(UnaryNot,       UnaryOperator);
      97             1555:       case UnaryOperator::LNot:         DISPATCH(UnaryLNot,      UnaryOperator);
      98               80:       case UnaryOperator::Real:         DISPATCH(UnaryReal,      UnaryOperator);
      99               70:       case UnaryOperator::Imag:         DISPATCH(UnaryImag,      UnaryOperator);
     100               73:       case UnaryOperator::Extension:    DISPATCH(UnaryExtension, UnaryOperator);
     101              579:       case UnaryOperator::OffsetOf:     DISPATCH(UnaryOffsetOf,  UnaryOperator);
     102                 :       }
     103                 :     }
     104                 : 
     105                 :     // Top switch stmt: dispatch to VisitFooStmt for each FooStmt.
                        0: branch 1 not taken
                       12: branch 2 taken
                      529: branch 3 taken
                       19: branch 4 taken
                        8: branch 5 taken
                       11: branch 6 taken
                       39: branch 7 taken
                       13: branch 8 taken
                        9: branch 9 taken
                        5: branch 10 taken
                       14: branch 11 taken
                        7: branch 12 taken
                        5: branch 13 taken
                        5: branch 14 taken
                       25: branch 15 taken
                     3079: branch 16 taken
                     8814: branch 17 taken
                        0: branch 18 not taken
                       13: branch 19 taken
                        2: branch 20 taken
                        2: branch 21 taken
                        1: branch 22 taken
                        4: branch 23 taken
                        2: branch 24 taken
                        4: branch 25 taken
                        0: branch 26 not taken
                        0: branch 27 not taken
                       41: branch 28 taken
                    23894: branch 29 taken
                    14208: branch 30 taken
                      638: branch 31 taken
                       21: branch 32 taken
                      938: branch 33 taken
                      135: branch 34 taken
                     3683: branch 35 taken
                        0: branch 36 not taken
                      261: branch 37 taken
                      710: branch 38 taken
                     5479: branch 39 taken
                     1647: branch 40 taken
                        0: branch 41 not taken
                        0: branch 42 not taken
                      437: branch 43 taken
                    17501: branch 44 taken
                     4090: branch 45 taken
                      112: branch 46 taken
                       51: branch 47 taken
                      494: branch 48 taken
                        8: branch 49 taken
                      292: branch 50 taken
                        0: branch 51 not taken
                       14: branch 52 taken
                       18: branch 53 taken
                      166: branch 54 taken
                       11: branch 55 taken
                       47: branch 56 taken
                        3: branch 57 taken
                       42: branch 58 taken
                      251: branch 59 taken
                        0: branch 60 not taken
                       25: branch 61 taken
                       15: branch 62 taken
                        5: branch 63 taken
                        2: branch 64 taken
                       10: branch 65 taken
                       14: branch 66 taken
                       68: branch 67 taken
                        4: branch 68 taken
                      398: branch 69 taken
                       28: branch 70 taken
                       98: branch 71 taken
                        8: branch 72 taken
                       62: branch 73 taken
                       20: branch 74 taken
                        4: branch 75 taken
                       20: branch 76 taken
                        1: branch 77 taken
                        9: branch 78 taken
                      933: branch 79 taken
                       55: branch 80 taken
                        0: branch 81 not taken
                       66: branch 82 taken
                        0: branch 83 not taken
                       27: branch 84 taken
                        3: branch 85 taken
                        1: branch 86 taken
                      314: branch 87 taken
                        6: branch 88 taken
                     3229: branch 89 taken
                       17: branch 90 taken
                       14: branch 91 taken
                      487: branch 92 taken
                       44: branch 93 taken
                      109: branch 94 taken
                       88: branch 95 taken
                        9: branch 96 taken
                        4: branch 97 taken
                      267: branch 98 taken
                      168: branch 99 taken
                        0: branch 113 not taken
                        0: branch 114 not taken
                        1: branch 115 taken
                       16: branch 116 taken
                       30: branch 117 taken
                        0: branch 118 not taken
                        0: branch 119 not taken
                        0: branch 120 not taken
                        0: branch 121 not taken
                        1: branch 122 taken
                     1305: branch 123 taken
                     2506: branch 124 taken
                        0: branch 125 not taken
                        0: branch 126 not taken
                        0: branch 127 not taken
                        0: branch 128 not taken
                       62: branch 129 taken
                       20: branch 130 taken
                        0: branch 131 not taken
                       10: branch 132 taken
                        6: branch 133 taken
                        0: branch 134 not taken
                       10: branch 135 taken
                    12753: branch 136 taken
                    20000: branch 137 taken
                      232: branch 138 taken
                        6: branch 139 taken
                      276: branch 140 taken
                      229: branch 141 taken
                     2257: branch 142 taken
                        8: branch 143 taken
                      972: branch 144 taken
                      413: branch 145 taken
                     2099: branch 146 taken
                      872: branch 147 taken
                        0: branch 148 not taken
                        0: branch 149 not taken
                      968: branch 150 taken
                     7403: branch 151 taken
                     2351: branch 152 taken
                       33: branch 153 taken
                        1: branch 154 taken
                      104: branch 155 taken
                        0: branch 156 not taken
                       92: branch 157 taken
                        0: branch 158 not taken
                        1: branch 159 taken
                        0: branch 160 not taken
                       45: branch 161 taken
                       12: branch 162 taken
                       11: branch 163 taken
                        7: branch 164 taken
                        8: branch 165 taken
                       86: branch 166 taken
                        0: branch 167 not taken
                        6: branch 168 taken
                        0: branch 169 not taken
                        0: branch 170 not taken
                        0: branch 171 not taken
                        6: branch 172 taken
                        0: branch 173 not taken
                      302: branch 174 taken
                        0: branch 175 not taken
                       10: branch 176 taken
                        5: branch 177 taken
                        5: branch 178 taken
                        4: branch 179 taken
                        0: branch 180 not taken
                        0: branch 181 not taken
                        0: branch 182 not taken
                        0: branch 183 not taken
                      334: branch 184 taken
                        0: branch 185 not taken
                       10: branch 186 taken
                        0: branch 187 not taken
                        0: branch 188 not taken
                        4: branch 189 taken
                        0: branch 190 not taken
                        0: branch 191 not taken
                        0: branch 192 not taken
                        0: branch 193 not taken
                       91: branch 194 taken
                        0: branch 195 not taken
                     1196: branch 196 taken
                        4: branch 197 taken
                        0: branch 198 not taken
                      236: branch 199 taken
                        7: branch 193 taken
                       36: branch 194 taken
                       22: branch 195 taken
                        0: branch 196 not taken
                        0: branch 197 not taken
                       73: branch 198 taken
                       65: branch 199 taken
                        0: branch 201 not taken
                        0: branch 202 not taken
                        0: branch 203 not taken
                        0: branch 204 not taken
                        0: branch 205 not taken
                        0: branch 206 not taken
                        0: branch 207 not taken
                        0: branch 208 not taken
                        0: branch 209 not taken
                        0: branch 210 not taken
                        0: branch 211 not taken
                        0: branch 212 not taken
                        0: branch 213 not taken
                        0: branch 214 not taken
                        0: branch 215 not taken
                        0: branch 216 not taken
                        0: branch 217 not taken
                        0: branch 218 not taken
                        0: branch 219 not taken
                        0: branch 220 not taken
                        0: branch 221 not taken
                        0: branch 222 not taken
                        0: branch 223 not taken
                        0: branch 224 not taken
                        0: branch 225 not taken
                        0: branch 226 not taken
                        0: branch 227 not taken
                        0: branch 228 not taken
                     1430: branch 229 taken
                        0: branch 230 not taken
                        0: branch 231 not taken
                        0: branch 232 not taken
                        0: branch 233 not taken
                        0: branch 234 not taken
                      190: branch 235 taken
                        0: branch 236 not taken
                        0: branch 237 not taken
                       31: branch 238 taken
                       68: branch 239 taken
                      138: branch 240 taken
                        0: branch 241 not taken
                        0: branch 242 not taken
                       16: branch 243 taken
                      579: branch 244 taken
                      160: branch 245 taken
                        0: branch 246 not taken
                        0: branch 247 not taken
                        0: branch 248 not taken
                        0: branch 249 not taken
                      250: branch 250 taken
                        0: branch 251 not taken
                        0: branch 252 not taken
                       30: branch 253 taken
                        0: branch 254 not taken
                        0: branch 255 not taken
                        1: branch 256 taken
                        0: branch 257 not taken
                        0: branch 258 not taken
                        4: branch 259 taken
                        0: branch 260 not taken
                        0: branch 261 not taken
                        0: branch 262 not taken
                        0: branch 263 not taken
                        0: branch 264 not taken
                        0: branch 265 not taken
                        0: branch 266 not taken
                        0: branch 267 not taken
                        1: branch 268 taken
                        3: branch 269 taken
                        0: branch 270 not taken
                        0: branch 271 not taken
                        0: branch 272 not taken
                        5: branch 273 taken
                        0: branch 274 not taken
                        0: branch 275 not taken
                        0: branch 276 not taken
                        0: branch 277 not taken
                        0: branch 278 not taken
                        0: branch 279 not taken
                        0: branch 280 not taken
                        0: branch 281 not taken
                        0: branch 282 not taken
                        0: branch 283 not taken
                        0: branch 284 not taken
                        0: branch 285 not taken
                        0: branch 286 not taken
                       10: branch 287 taken
                        0: branch 288 not taken
                        4: branch 289 taken
                        0: branch 290 not taken
                        1: branch 291 taken
                        7: branch 292 taken
                        0: branch 293 not taken
                        0: branch 294 not taken
                        0: branch 295 not taken
                        2: branch 296 taken
                        0: branch 297 not taken
                       16: branch 298 taken
                        3: branch 299 taken
                        0: branch 301 not taken
                        0: branch 302 not taken
                        0: branch 303 not taken
                        0: branch 304 not taken
                        0: branch 305 not taken
                        0: branch 306 not taken
                        0: branch 307 not taken
                        0: branch 308 not taken
                        0: branch 309 not taken
                        0: branch 310 not taken
                        0: branch 311 not taken
                        0: branch 312 not taken
                        0: branch 313 not taken
                        0: branch 314 not taken
                        0: branch 315 not taken
                        0: branch 316 not taken
                        0: branch 317 not taken
                        0: branch 318 not taken
                        0: branch 319 not taken
                        0: branch 320 not taken
                        0: branch 321 not taken
                        0: branch 322 not taken
                        0: branch 323 not taken
                        0: branch 324 not taken
                        0: branch 325 not taken
                        0: branch 326 not taken
                        0: branch 327 not taken
                        6: branch 328 taken
                      352: branch 329 taken
                        0: branch 330 not taken
                        0: branch 331 not taken
                        0: branch 332 not taken
                       51: branch 333 taken
                        0: branch 334 not taken
                        4: branch 335 taken
                        0: branch 336 not taken
                        0: branch 337 not taken
                       50: branch 338 taken
                        0: branch 339 not taken
                      306: branch 340 taken
                        0: branch 341 not taken
                        0: branch 342 not taken
                        0: branch 343 not taken
                        3: branch 344 taken
                        0: branch 345 not taken
                       12: branch 346 taken
                        0: branch 347 not taken
                        0: branch 348 not taken
                        0: branch 349 not taken
                        0: branch 350 not taken
                        0: branch 351 not taken
                        0: branch 352 not taken
                        0: branch 353 not taken
                        0: branch 354 not taken
                        0: branch 355 not taken
                        0: branch 356 not taken
                        0: branch 357 not taken
                        0: branch 358 not taken
                        0: branch 359 not taken
                        0: branch 360 not taken
                        0: branch 361 not taken
                        0: branch 362 not taken
                        0: branch 363 not taken
                        0: branch 364 not taken
                        0: branch 365 not taken
                        0: branch 366 not taken
                        0: branch 367 not taken
                        0: branch 368 not taken
                        0: branch 369 not taken
                        0: branch 370 not taken
                        0: branch 371 not taken
                        0: branch 372 not taken
                        0: branch 373 not taken
                        0: branch 374 not taken
                        0: branch 375 not taken
                        0: branch 376 not taken
                        0: branch 377 not taken
                        0: branch 378 not taken
                        0: branch 379 not taken
                        0: branch 380 not taken
                        0: branch 381 not taken
                        0: branch 382 not taken
                        0: branch 383 not taken
                        0: branch 384 not taken
                        0: branch 385 not taken
                        0: branch 386 not taken
                        0: branch 387 not taken
                       14: branch 388 taken
                        0: branch 389 not taken
                        0: branch 390 not taken
                        0: branch 391 not taken
                        0: branch 392 not taken
                        0: branch 393 not taken
                        0: branch 394 not taken
                        0: branch 395 not taken
                        0: branch 396 not taken
                        0: branch 397 not taken
                        0: branch 398 not taken
                        0: branch 399 not taken
                        0: branch 401 not taken
                        0: branch 402 not taken
                        0: branch 403 not taken
                        0: branch 404 not taken
                        0: branch 405 not taken
                        0: branch 406 not taken
                        0: branch 407 not taken
                        0: branch 408 not taken
                        0: branch 409 not taken
                        0: branch 410 not taken
                        0: branch 411 not taken
                        0: branch 412 not taken
                        0: branch 413 not taken
                        0: branch 414 not taken
                        0: branch 415 not taken
                        0: branch 416 not taken
                        0: branch 417 not taken
                        0: branch 418 not taken
                        0: branch 419 not taken
                        0: branch 420 not taken
                        0: branch 421 not taken
                        0: branch 422 not taken
                        0: branch 423 not taken
                        0: branch 424 not taken
                        0: branch 425 not taken
                        0: branch 426 not taken
                        0: branch 427 not taken
                        0: branch 428 not taken
                      526: branch 429 taken
                        0: branch 430 not taken
                        0: branch 431 not taken
                        0: branch 432 not taken
                        0: branch 433 not taken
                        0: branch 434 not taken
                        0: branch 435 not taken
                        0: branch 436 not taken
                        0: branch 437 not taken
                        0: branch 438 not taken
                      204: branch 439 taken
                        0: branch 440 not taken
                        0: branch 441 not taken
                        0: branch 442 not taken
                        1: branch 443 taken
                        2: branch 444 taken
                        1: branch 445 taken
                        7: branch 446 taken
                        0: branch 447 not taken
                        9: branch 448 taken
                        0: branch 449 not taken
                        0: branch 450 not taken
                        0: branch 451 not taken
                        0: branch 452 not taken
                        0: branch 453 not taken
                        0: branch 454 not taken
                        0: branch 455 not taken
                        1: branch 456 taken
                        0: branch 457 not taken
                        0: branch 458 not taken
                        0: branch 459 not taken
                        0: branch 460 not taken
                        0: branch 461 not taken
                        0: branch 462 not taken
                        0: branch 463 not taken
                        0: branch 464 not taken
                        0: branch 465 not taken
                        0: branch 466 not taken
                        0: branch 467 not taken
                        0: branch 468 not taken
                        0: branch 469 not taken
                        0: branch 470 not taken
                        0: branch 471 not taken
                        0: branch 472 not taken
                        0: branch 473 not taken
                        0: branch 474 not taken
                        0: branch 475 not taken
                        0: branch 476 not taken
                        0: branch 477 not taken
                        0: branch 478 not taken
                        0: branch 479 not taken
                        0: branch 480 not taken
                        0: branch 481 not taken
                        0: branch 482 not taken
                        0: branch 483 not taken
                        0: branch 484 not taken
                        0: branch 485 not taken
                        0: branch 486 not taken
                        0: branch 487 not taken
                        0: branch 488 not taken
                        0: branch 489 not taken
                        0: branch 490 not taken
                        0: branch 491 not taken
                        0: branch 492 not taken
                        0: branch 493 not taken
                        0: branch 494 not taken
                        0: branch 495 not taken
                        0: branch 496 not taken
                        0: branch 497 not taken
                        0: branch 498 not taken
                        0: branch 499 not taken
                        0: branch 501 not taken
                        0: branch 502 not taken
                        0: branch 503 not taken
                        0: branch 504 not taken
                        0: branch 505 not taken
                        0: branch 506 not taken
                        0: branch 507 not taken
                        0: branch 508 not taken
                        0: branch 509 not taken
                        0: branch 510 not taken
                        0: branch 511 not taken
                        0: branch 512 not taken
                        0: branch 513 not taken
                        0: branch 514 not taken
                        0: branch 515 not taken
                        0: branch 516 not taken
                        0: branch 517 not taken
                        0: branch 518 not taken
                        0: branch 519 not taken
                        0: branch 520 not taken
                        0: branch 521 not taken
                        0: branch 522 not taken
                        0: branch 523 not taken
                        0: branch 524 not taken
                        0: branch 525 not taken
                        0: branch 526 not taken
                        0: branch 527 not taken
                        0: branch 528 not taken
                      121: branch 529 taken
                        0: branch 530 not taken
                      447: branch 531 taken
                        0: branch 532 not taken
                        0: branch 533 not taken
                        0: branch 534 not taken
                       28: branch 535 taken
                        0: branch 536 not taken
                        0: branch 537 not taken
                        3: branch 538 taken
                       84: branch 539 taken
                       82: branch 540 taken
                        0: branch 541 not taken
                        0: branch 542 not taken
                        1: branch 543 taken
                      193: branch 544 taken
                        4: branch 545 taken
                        0: branch 546 not taken
                        0: branch 547 not taken
                        0: branch 548 not taken
                        0: branch 549 not taken
                        0: branch 550 not taken
                        0: branch 551 not taken
                        0: branch 552 not taken
                        0: branch 553 not taken
                        0: branch 554 not taken
                        0: branch 555 not taken
                        0: branch 556 not taken
                        0: branch 557 not taken
                        0: branch 558 not taken
                        0: branch 559 not taken
                        0: branch 560 not taken
                        0: branch 561 not taken
                        0: branch 562 not taken
                        0: branch 563 not taken
                        0: branch 564 not taken
                        0: branch 565 not taken
                        0: branch 566 not taken
                        0: branch 567 not taken
                        0: branch 568 not taken
                        0: branch 569 not taken
                        0: branch 570 not taken
                        0: branch 571 not taken
                        1: branch 572 taken
                        0: branch 573 not taken
                        0: branch 574 not taken
                        0: branch 575 not taken
                        0: branch 576 not taken
                        0: branch 577 not taken
                        0: branch 578 not taken
                        0: branch 579 not taken
                        0: branch 580 not taken
                        0: branch 581 not taken
                        0: branch 582 not taken
                        0: branch 583 not taken
                        0: branch 584 not taken
                        0: branch 585 not taken
                        0: branch 586 not taken
                        0: branch 587 not taken
                        0: branch 588 not taken
                        1: branch 589 taken
                        0: branch 590 not taken
                        0: branch 591 not taken
                        0: branch 592 not taken
                        0: branch 593 not taken
                        0: branch 594 not taken
                        0: branch 595 not taken
                        0: branch 596 not taken
                        0: branch 597 not taken
                        0: branch 598 not taken
                        0: branch 599 not taken
                        0: branch 601 not taken
                        0: branch 602 not taken
                        0: branch 603 not taken
                        0: branch 604 not taken
                        0: branch 605 not taken
                        0: branch 606 not taken
                        0: branch 607 not taken
                        0: branch 608 not taken
                        0: branch 609 not taken
                        0: branch 610 not taken
                        0: branch 611 not taken
                        0: branch 612 not taken
                        0: branch 613 not taken
                        0: branch 614 not taken
                        0: branch 615 not taken
                        0: branch 616 not taken
                        0: branch 617 not taken
                        0: branch 618 not taken
                        0: branch 619 not taken
                        0: branch 620 not taken
                        0: branch 621 not taken
                        0: branch 622 not taken
                        0: branch 623 not taken
                        0: branch 624 not taken
                        0: branch 625 not taken
                        0: branch 626 not taken
                        0: branch 627 not taken
                        0: branch 628 not taken
                       48: branch 629 taken
                        0: branch 630 not taken
                        0: branch 631 not taken
                       50: branch 632 taken
                        0: branch 633 not taken
                        0: branch 634 not taken
                       33: branch 635 taken
                        0: branch 636 not taken
                        0: branch 637 not taken
                        0: branch 638 not taken
                        0: branch 639 not taken
                        0: branch 640 not taken
                        0: branch 641 not taken
                        0: branch 642 not taken
                        0: branch 643 not taken
                       78: branch 644 taken
                        5: branch 645 taken
                        0: branch 646 not taken
                        0: branch 647 not taken
                        0: branch 648 not taken
                        0: branch 649 not taken
                        0: branch 650 not taken
                        0: branch 651 not taken
                        0: branch 652 not taken
                        0: branch 653 not taken
                        0: branch 654 not taken
                        0: branch 655 not taken
                        0: branch 656 not taken
                        0: branch 657 not taken
                        0: branch 658 not taken
                        0: branch 659 not taken
                        0: branch 660 not taken
                        0: branch 661 not taken
                        0: branch 662 not taken
                        0: branch 663 not taken
                        0: branch 664 not taken
                        0: branch 665 not taken
                        0: branch 666 not taken
                        0: branch 667 not taken
                        0: branch 668 not taken
                        0: branch 669 not taken
                        0: branch 670 not taken
                        0: branch 671 not taken
                        0: branch 672 not taken
                        0: branch 673 not taken
                        0: branch 674 not taken
                        0: branch 675 not taken
                        0: branch 676 not taken
                        0: branch 677 not taken
                        0: branch 678 not taken
                        0: branch 679 not taken
                        0: branch 680 not taken
                        0: branch 681 not taken
                        0: branch 682 not taken
                        0: branch 683 not taken
                        0: branch 684 not taken
                        0: branch 685 not taken
                        0: branch 686 not taken
                        0: branch 687 not taken
                        0: branch 688 not taken
                        0: branch 689 not taken
                        0: branch 690 not taken
                        0: branch 691 not taken
                        4: branch 692 taken
                        0: branch 693 not taken
                        0: branch 694 not taken
                        0: branch 695 not taken
                        0: branch 696 not taken
                        0: branch 697 not taken
                        0: branch 698 not taken
                        0: branch 699 not taken
     106           157761:     switch (S->getStmtClass()) {
     107                0:     default: assert(0 && "Unknown stmt kind!");
     108                 : #define ABSTRACT_EXPR(CLASS, PARENT)
     109                 : #define STMT(CLASS, PARENT)                              \
     110                 :     case Stmt::CLASS ## Class: DISPATCH(CLASS, CLASS);
     111                 : #include "clang/AST/StmtNodes.def"
     112                 :     }
     113                 :   }
     114                 : 
     115                 :   // If the implementation chooses not to implement a certain visit method, fall
     116                 :   // back on VisitExpr or whatever else is the superclass.
     117                 : #define STMT(CLASS, PARENT)                                   \
     118                 :   RetTy Visit ## CLASS(CLASS *S) { DISPATCH(PARENT, PARENT); }
     119                 : #include "clang/AST/StmtNodes.def"
     120                 : 
     121                 :   // If the implementation doesn't implement binary operator methods, fall back
     122                 :   // on VisitBinaryOperator.
     123                 : #define BINOP_FALLBACK(NAME) \
     124                 :   RetTy VisitBin ## NAME(BinaryOperator *S) { \
     125                 :     DISPATCH(BinaryOperator, BinaryOperator); \
     126                 :   }
     127                0:   BINOP_FALLBACK(PtrMemD)                    BINOP_FALLBACK(PtrMemI)
     128              758:   BINOP_FALLBACK(Mul)   BINOP_FALLBACK(Div)  BINOP_FALLBACK(Rem)
     129             2429:   BINOP_FALLBACK(Add)   BINOP_FALLBACK(Sub)  BINOP_FALLBACK(Shl)
     130               49:   BINOP_FALLBACK(Shr)
     131                 : 
     132             1451:   BINOP_FALLBACK(LT)    BINOP_FALLBACK(GT)   BINOP_FALLBACK(LE)
     133             4017:   BINOP_FALLBACK(GE)    BINOP_FALLBACK(EQ)   BINOP_FALLBACK(NE)
     134              588:   BINOP_FALLBACK(And)   BINOP_FALLBACK(Xor)  BINOP_FALLBACK(Or)
     135              392:   BINOP_FALLBACK(LAnd)  BINOP_FALLBACK(LOr)
     136                 : 
     137             4611:   BINOP_FALLBACK(Assign)
     138              321:   BINOP_FALLBACK(Comma)
     139                 : #undef BINOP_FALLBACK
     140                 : 
     141                 :   // If the implementation doesn't implement compound assignment operator
     142                 :   // methods, fall back on VisitCompoundAssignOperator.
     143                 : #define CAO_FALLBACK(NAME) \
     144                 :   RetTy VisitBin ## NAME(CompoundAssignOperator *S) { \
     145                 :     DISPATCH(CompoundAssignOperator, CompoundAssignOperator); \
     146                 :   }
     147              179:   CAO_FALLBACK(MulAssign) CAO_FALLBACK(DivAssign) CAO_FALLBACK(RemAssign)
     148              131:   CAO_FALLBACK(AddAssign) CAO_FALLBACK(SubAssign) CAO_FALLBACK(ShlAssign)
     149              116:   CAO_FALLBACK(ShrAssign) CAO_FALLBACK(AndAssign) CAO_FALLBACK(OrAssign)
     150                0:   CAO_FALLBACK(XorAssign)
     151                 : #undef CAO_FALLBACK
     152                 : 
     153                 :   // If the implementation doesn't implement unary operator methods, fall back
     154                 :   // on VisitUnaryOperator.
     155                 : #define UNARYOP_FALLBACK(NAME) \
     156                 :   RetTy VisitUnary ## NAME(UnaryOperator *S) { \
     157                 :     DISPATCH(UnaryOperator, UnaryOperator);    \
     158                 :   }
     159              497:   UNARYOP_FALLBACK(PostInc)   UNARYOP_FALLBACK(PostDec)
     160             1977:   UNARYOP_FALLBACK(PreInc)    UNARYOP_FALLBACK(PreDec)
     161             4615:   UNARYOP_FALLBACK(AddrOf)    UNARYOP_FALLBACK(Deref)
     162                 : 
     163              292:   UNARYOP_FALLBACK(Plus)      UNARYOP_FALLBACK(Minus)
     164             1684:   UNARYOP_FALLBACK(Not)       UNARYOP_FALLBACK(LNot)
     165               49:   UNARYOP_FALLBACK(Real)      UNARYOP_FALLBACK(Imag)
     166              639:   UNARYOP_FALLBACK(Extension) UNARYOP_FALLBACK(OffsetOf)
     167                 : #undef UNARYOP_FALLBACK
     168                 : 
     169                 :   // Base case, ignore it. :)
     170                0:   RetTy VisitStmt(Stmt *Node) { return RetTy(); }
     171                 : };
     172                 : 
     173                 : #undef DISPATCH
     174                 : 
     175                 : }  // end namespace clang
     176                 : 
     177                 : #endif

Generated: 2010-02-10 01:31 by zcov