Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:37:10

0001 //===--- PathDiagnosticConsumers.h - Path Diagnostic Clients ----*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 //  This file defines the interface to create different path diagostic clients.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
0014 #define LLVM_CLANG_STATICANALYZER_CORE_PATHDIAGNOSTICCONSUMERS_H
0015 
0016 #include "clang/Analysis/PathDiagnostic.h"
0017 
0018 #include <string>
0019 #include <vector>
0020 
0021 namespace clang {
0022 
0023 class MacroExpansionContext;
0024 class Preprocessor;
0025 
0026 namespace cross_tu {
0027 class CrossTranslationUnitContext;
0028 }
0029 
0030 namespace ento {
0031 
0032 class PathDiagnosticConsumer;
0033 typedef std::vector<PathDiagnosticConsumer*> PathDiagnosticConsumers;
0034 
0035 #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)                    \
0036   void CREATEFN(PathDiagnosticConsumerOptions Diagopts,                        \
0037                 PathDiagnosticConsumers &C, const std::string &Prefix,         \
0038                 const Preprocessor &PP,                                        \
0039                 const cross_tu::CrossTranslationUnitContext &CTU,              \
0040                 const MacroExpansionContext &MacroExpansions);
0041 #include "clang/StaticAnalyzer/Core/Analyses.def"
0042 
0043 } // end 'ento' namespace
0044 } // end 'clang' namespace
0045 
0046 #endif