zcov: / include/clang/Frontend/AnalysisConsumer.h


Files: 1 Branches Taken: 0.0% 0 / 0
Generated: 2010-02-10 01:31 Branches Executed: 0.0% 0 / 0
Line Coverage: 100.0% 16 / 16


Programs: 6 Runs 11830


       1                 : //===--- AnalysisConsumer.h - Front-end Analysis Engine Hooks ---*- 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 header contains the functions necessary for a front-end to run various
      11                 : // analyses.
      12                 : //
      13                 : //===----------------------------------------------------------------------===//
      14                 : 
      15                 : #ifndef LLVM_CLANG_FRONTEND_ANALYSISCONSUMER_H
      16                 : #define LLVM_CLANG_FRONTEND_ANALYSISCONSUMER_H
      17                 : 
      18                 : #include <string>
      19                 : #include <vector>
      20                 : 
      21                 : namespace clang {
      22                 : class ASTConsumer;
      23                 : class Diagnostic;
      24                 : class Preprocessor;
      25                 : class LangOptions;
      26                 : 
      27                 : /// Analysis - Set of available source code analyses.
      28                 : enum Analyses {
      29                 : #define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME,
      30                 : #include "clang/Frontend/Analyses.def"
      31                 : NumAnalyses
      32                 : };
      33                 : 
      34                 : /// AnalysisStores - Set of available analysis store models.
      35                 : enum AnalysisStores {
      36                 : #define ANALYSIS_STORE(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
      37                 : #include "clang/Frontend/Analyses.def"
      38                 : NumStores
      39                 : };
      40                 : 
      41                 : /// AnalysisConstraints - Set of available constraint models.
      42                 : enum AnalysisConstraints {
      43                 : #define ANALYSIS_CONSTRAINTS(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
      44                 : #include "clang/Frontend/Analyses.def"
      45                 : NumConstraints
      46                 : };
      47                 : 
      48                 : /// AnalysisDiagClients - Set of available diagnostic clients for rendering
      49                 : ///  analysis results.
      50                 : enum AnalysisDiagClients {
      51                 : #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATFN, AUTOCREAT) PD_##NAME,
      52                 : #include "clang/Frontend/Analyses.def"
      53                 : NUM_ANALYSIS_DIAG_CLIENTS
      54                 : };
      55                 : 
      56             2907: class AnalyzerOptions {
      57                 : public:
      58                 :   std::vector<Analyses> AnalysisList;
      59                 :   AnalysisStores AnalysisStoreOpt;
      60                 :   AnalysisConstraints AnalysisConstraintsOpt;
      61                 :   AnalysisDiagClients AnalysisDiagOpt;
      62                 :   std::string AnalyzeSpecificFunction;
      63                 :   unsigned AnalyzeAll : 1;
      64                 :   unsigned AnalyzerDisplayProgress : 1;
      65                 :   unsigned AnalyzeNestedBlocks : 1;
      66                 :   unsigned EagerlyAssume : 1;
      67                 :   unsigned PurgeDead : 1;
      68                 :   unsigned TrimGraph : 1;
      69                 :   unsigned VisualizeEGDot : 1;
      70                 :   unsigned VisualizeEGUbi : 1;
      71                 :   unsigned EnableExperimentalChecks : 1;
      72                 :   unsigned EnableExperimentalInternalChecks : 1;
      73                 : public:
      74             2532:   AnalyzerOptions() {
      75             2532:     AnalysisStoreOpt = BasicStoreModel;
      76             2532:     AnalysisConstraintsOpt = RangeConstraintsModel;
      77             2532:     AnalysisDiagOpt = PD_HTML;
      78             2532:     AnalyzeAll = 0;
      79             2532:     AnalyzerDisplayProgress = 0;
      80             2532:     AnalyzeNestedBlocks = 0;
      81             2532:     EagerlyAssume = 0;
      82             2532:     PurgeDead = 1;
      83             2532:     TrimGraph = 0;
      84             2532:     VisualizeEGDot = 0;
      85             2532:     VisualizeEGUbi = 0;
      86             2532:     EnableExperimentalChecks = 0;
      87             2532:     EnableExperimentalInternalChecks = 0;
      88             2532:   }
      89                 : };
      90                 : 
      91                 : /// CreateAnalysisConsumer - Creates an ASTConsumer to run various code
      92                 : /// analysis passes.  (The set of analyses run is controlled by command-line
      93                 : /// options.)
      94                 : ASTConsumer* CreateAnalysisConsumer(const Preprocessor &pp,
      95                 :                                     const std::string &output,
      96                 :                                     const AnalyzerOptions& Opts);
      97                 : 
      98                 : }
      99                 : 
     100                 : #endif

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