]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / clang / include / clang / StaticAnalyzer / Core / PathDiagnosticConsumers.h
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_GR_PATH_DIAGNOSTIC_CLIENTS_H
15 #define LLVM_CLANG_GR_PATH_DIAGNOSTIC_CLIENTS_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 CREATE_CONSUMER(NAME)\
31 void create ## NAME ## DiagnosticConsumer(AnalyzerOptions &AnalyzerOpts,\
32                                           PathDiagnosticConsumers &C,\
33                                           const std::string& prefix,\
34                                           const Preprocessor &PP);
35
36 CREATE_CONSUMER(HTML)
37 CREATE_CONSUMER(Plist)
38 CREATE_CONSUMER(PlistMultiFile)
39 CREATE_CONSUMER(TextPath)
40
41 #undef CREATE_CONSUMER
42
43 } // end 'ento' namespace
44 } // end 'clang' namespace
45
46 #endif