1 //===--- PathDiagnosticClients.h - Path Diagnostic Clients ------*- 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 interface to create different path diagostic clients.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
15 #define LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
16 
17 #include <string>
18 #include <vector>
19 
20 namespace clang {
21 
22 class AnalyzerOptions;
23 class Preprocessor;
24 
25 namespace ento {
26 
27 class PathDiagnosticConsumer;
28 typedef std::vector<PathDiagnosticConsumer*> PathDiagnosticConsumers;
29 
30 #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)\
31 void CREATEFN(AnalyzerOptions &AnalyzerOpts,\
32               PathDiagnosticConsumers &C,\
33               const std::string &Prefix,\
34               const Preprocessor &PP);
35 #include "clang/StaticAnalyzer/Core/Analyses.def"
36 
37 } // end 'ento' namespace
38 } // end 'clang' namespace
39 
40 #endif
41