LCOV - code coverage report
Current view: top level - build-llvm/tools/clang/include/clang/AST - StmtDataCollectors.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 22 33 66.7 %
Date: 2017-09-14 15:23:50 Functions: 31 85 36.5 %
Legend: Lines: hit not hit

          Line data    Source code
       1          12 : DEF_ADD_DATA(AddrLabelExpr, {
       2             : 
       3             :     addData(S->getLabel()->getName());
       4             :   }
       5             : )
       6           0 : DEF_ADD_DATA(ArrayTypeTraitExpr, {
       7             : 
       8             :     addData(S->getTrait());
       9             :   }
      10             : )
      11          24 : DEF_ADD_DATA(AsmStmt, {
      12             : 
      13             :     addData(S->isSimple());
      14             :     addData(S->isVolatile());
      15             :     addData(S->generateAsmString(Context));
      16             :     for (unsigned i = 0; i < S->getNumInputs(); ++i) {
      17             :       addData(S->getInputConstraint(i));
      18             :     }
      19             :     for (unsigned i = 0; i < S->getNumOutputs(); ++i) {
      20             :       addData(S->getOutputConstraint(i));
      21             :     }
      22             :     for (unsigned i = 0; i < S->getNumClobbers(); ++i) {
      23             :       addData(S->getClobber(i));
      24             :     }
      25             :   }
      26             : )
      27           8 : DEF_ADD_DATA(AttributedStmt, {
      28             : 
      29             :     for (const Attr *A : S->getAttrs()) {
      30             :       addData(std::string(A->getSpelling()));
      31             :     }
      32             :   }
      33             : )
      34        9052 : DEF_ADD_DATA(BinaryOperator, {
      35             : 
      36             :     addData(S->getOpcode());
      37             :   }
      38             : )
      39          12 : DEF_ADD_DATA(CXXBoolLiteralExpr, {
      40             : 
      41             :     addData(S->getValue());
      42             :   }
      43             : )
      44          21 : DEF_ADD_DATA(CXXCatchStmt, {
      45             : 
      46             :     addData(S->getCaughtType());
      47             :   }
      48             : )
      49          42 : DEF_ADD_DATA(CXXDeleteExpr, {
      50             : 
      51             :     addData(S->isArrayFormAsWritten()); addData(S->isGlobalDelete());
      52             :   }
      53             : )
      54           0 : DEF_ADD_DATA(CXXFoldExpr, {
      55             : 
      56             :     addData(S->isRightFold()); addData(S->getOperator());
      57             :   }
      58             : )
      59         543 : DEF_ADD_DATA(CallExpr, {
      60             : 
      61             :     // Function pointers don't have a callee and we just skip hashing it.
      62             :     if (const FunctionDecl *D = S->getDirectCallee()) {
      63             :       // If the function is a template specialization, we also need to handle
      64             :       // the template arguments as they are not included in the qualified name.
      65             :       if (auto Args = D->getTemplateSpecializationArgs()) {
      66             :         std::string ArgString;
      67             : 
      68             :         // Print all template arguments into ArgString
      69             :         llvm::raw_string_ostream OS(ArgString);
      70             :         for (unsigned i = 0; i < Args->size(); ++i) {
      71             :           Args->get(i).print(Context.getLangOpts(), OS);
      72             :           // Add a padding character so that 'foo<X, XX>()' != 'foo<XX, X>()'.
      73             :           OS << '\n';
      74             :         }
      75             :         OS.flush();
      76             : 
      77             :         addData(ArgString);
      78             :       }
      79             :       addData(D->getQualifiedNameAsString());
      80             :     }
      81             :   }
      82             : )
      83          18 : DEF_ADD_DATA(CharacterLiteral, {
      84             : 
      85             :     addData(S->getValue());
      86             :   }
      87             : )
      88          24 : DEF_ADD_DATA(DeclRefExpr, {
      89             : 
      90             :     addData(S->getDecl()->getQualifiedNameAsString());
      91             :   }
      92             : )
      93         160 : DEF_ADD_DATA(DeclStmt, {
      94             : 
      95             :     auto numDecls = std::distance(S->decl_begin(), S->decl_end());
      96             :     addData(static_cast<unsigned>(numDecls));
      97             :     for (const Decl *D : S->decls()) {
      98             :       if (const VarDecl *VD = dyn_cast<VarDecl>(D)) {
      99             :         addData(VD->getType());
     100             :       }
     101             :     }
     102             :   }
     103             : )
     104       22587 : DEF_ADD_DATA(Expr, {
     105             : 
     106             :     addData(S->getType());
     107             :   }
     108             : )
     109           0 : DEF_ADD_DATA(ExpressionTraitExpr, {
     110             : 
     111             :     addData(S->getTrait());
     112             :   }
     113             : )
     114          40 : DEF_ADD_DATA(FloatingLiteral, {
     115             : 
     116             :     addData(llvm::hash_value(S->getValue()));
     117             :   }
     118             : )
     119          22 : DEF_ADD_DATA(GenericSelectionExpr, {
     120             : 
     121             :     for (unsigned i = 0; i < S->getNumAssocs(); ++i) {
     122             :       addData(S->getAssocType(i));
     123             :     }
     124             :   }
     125             : )
     126          12 : DEF_ADD_DATA(GotoStmt, {
     127             : 
     128             :     addData(S->getLabel()->getName());
     129             :   }
     130             : )
     131           0 : DEF_ADD_DATA(IndirectGotoStmt, {
     132             : 
     133             :     if (S->getConstantTarget())
     134             :       addData(S->getConstantTarget()->getName());
     135             :   }
     136             : )
     137          30 : DEF_ADD_DATA(IntegerLiteral, {
     138             : 
     139             :     addData(llvm::hash_value(S->getValue()));
     140             :   }
     141             : )
     142          24 : DEF_ADD_DATA(LabelStmt, {
     143             : 
     144             :     addData(S->getDecl()->getName());
     145             :   }
     146             : )
     147          55 : DEF_ADD_DATA(LambdaExpr, {
     148             : 
     149             :     for (const LambdaCapture &C : S->captures()) {
     150             :       addData(C.isPackExpansion());
     151             :       addData(C.getCaptureKind());
     152             :       if (C.capturesVariable())
     153             :         addData(C.getCapturedVar()->getType());
     154             :     }
     155             :     addData(S->isGenericLambda());
     156             :     addData(S->isMutable());
     157             :   }
     158             : )
     159           0 : DEF_ADD_DATA(MSDependentExistsStmt, {
     160             : 
     161             :     addData(S->isIfExists());
     162             :   }
     163             : )
     164          24 : DEF_ADD_DATA(MemberExpr, {
     165             : 
     166             :     addData(S->getMemberDecl()->getName());
     167             :   }
     168             : )
     169           0 : DEF_ADD_DATA(ObjCAtCatchStmt, {
     170             : 
     171             :     addData(S->hasEllipsis());
     172             :   }
     173             : )
     174           0 : DEF_ADD_DATA(ObjCBridgedCastExpr, {
     175             : 
     176             :     addData(S->getBridgeKind());
     177             :   }
     178             : )
     179           0 : DEF_ADD_DATA(ObjCIndirectCopyRestoreExpr, {
     180             : 
     181             :     addData(S->shouldCopy());
     182             :   }
     183             : )
     184           0 : DEF_ADD_DATA(ObjCPropertyRefExpr, {
     185             : 
     186             :     addData(S->isSuperReceiver()); addData(S->isImplicitProperty());
     187             :   }
     188             : )
     189           0 : DEF_ADD_DATA(PredefinedExpr, {
     190             : 
     191             :     addData(S->getIdentType());
     192             :   }
     193             : )
     194       57939 : DEF_ADD_DATA(Stmt, {
     195             : 
     196             :     addData(S->getStmtClass());
     197             :     // This ensures that non-macro-generated code isn't identical to
     198             :     // macro-generated code.
     199             :     addData(data_collection::getMacroStack(S->getLocStart(), Context));
     200             :     addData(data_collection::getMacroStack(S->getLocEnd(), Context));
     201             :   }
     202             : )
     203          16 : DEF_ADD_DATA(StringLiteral, {
     204             : 
     205             :     addData(S->getString());
     206             : }
     207             : )
     208           0 : DEF_ADD_DATA(TypeTraitExpr, {
     209             : 
     210             :     addData(S->getTrait());
     211             :     for (unsigned i = 0; i < S->getNumArgs(); ++i)
     212             :       addData(S->getArg(i)->getType());
     213             :   }
     214             : )
     215         652 : DEF_ADD_DATA(UnaryOperator, {
     216             : 
     217             :     addData(S->getOpcode());
     218             :   }
     219             : )
     220             : #undef DEF_ADD_DATA

Generated by: LCOV version 1.13