1//===--- PathDiagnosticConsumers.h - Path Diagnostic Clients ------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the interface to create different path diagostic clients.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
14#define LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
15
16#include <string>
17#include <vector>
18
19namespace clang {
20
21class AnalyzerOptions;
22class Preprocessor;
23
24namespace ento {
25
26class PathDiagnosticConsumer;
27typedef std::vector<PathDiagnosticConsumer*> PathDiagnosticConsumers;
28
29#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)\
30void CREATEFN(AnalyzerOptions &AnalyzerOpts,\
31 PathDiagnosticConsumers &C,\
32 const std::string &Prefix,\
33 const Preprocessor &PP);
34#include "clang/StaticAnalyzer/Core/Analyses.def"
35
36} // end 'ento' namespace
37} // end 'clang' namespace
38
39#endif
40