 |
|
 |
|
| 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 |
| |
 |
|
 |
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