1//===--- PathDiagnosticConsumers.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
20namespace clang {
21
22class AnalyzerOptions;
23class Preprocessor;
24
25namespace ento {
26
27class PathDiagnosticConsumer;
28typedef std::vector<PathDiagnosticConsumer*> PathDiagnosticConsumers;
29
30#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)\
31void 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