[analyzer] Overhauling of the checker registration mechanism.
[clang.git] / lib / StaticAnalyzer / Frontend / AnalysisConsumer.h
blobd382bdf0f531e0b6f2276912ca44363875ae8ab5
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.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_CLANG_GR_ANALYSISCONSUMER_H
16 #define LLVM_CLANG_GR_ANALYSISCONSUMER_H
18 #include <string>
20 namespace clang {
22 class AnalyzerOptions;
23 class ASTConsumer;
24 class Preprocessor;
25 class Diagnostic;
27 namespace ento {
28 class CheckerManager;
30 /// CreateAnalysisConsumer - Creates an ASTConsumer to run various code
31 /// analysis passes. (The set of analyses run is controlled by command-line
32 /// options.)
33 ASTConsumer* CreateAnalysisConsumer(const Preprocessor &pp,
34 const std::string &output,
35 const AnalyzerOptions& Opts);
37 CheckerManager *registerCheckers(const AnalyzerOptions &opts,Diagnostic &diags);
39 } // end GR namespace
41 } // end clang namespace
43 #endif