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 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