PathDiagnosticConsumers.h revision 5fba5a789a238c29ef811a39a39be722443ec1b1
15d866256333fb6115a8a86ac4f89b2ca36e20c70Ted Kremenek//===--- PathDiagnosticClients.h - Path Diagnostic Clients ------*- C++ -*-===// 288f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 388f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// The LLVM Compiler Infrastructure 488f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 588f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// This file is distributed under the University of Illinois Open Source 688f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// License. See LICENSE.TXT for details. 788f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 888f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek//===----------------------------------------------------------------------===// 988f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 105d866256333fb6115a8a86ac4f89b2ca36e20c70Ted Kremenek// This file defines the interface to create different path diagostic clients. 1188f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek// 1288f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek//===----------------------------------------------------------------------===// 1388f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 145a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis#ifndef LLVM_CLANG_GR_PATH_DIAGNOSTIC_CLIENTS_H 15b5ef3ca808b16aa2ba010251773e820f57190d1aSebastian Redl#define LLVM_CLANG_GR_PATH_DIAGNOSTIC_CLIENTS_H 1688f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 1788f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek#include <string> 18c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenek#include <vector> 1988f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek 2088f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremeneknamespace clang { 21339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenek 229fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenekclass AnalyzerOptions; 23339b9c27759d7b6a53e2370f83f66e78b3254595Ted Kremenekclass Preprocessor; 241eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 259ef6537a894c33003359b1f9b9676e9178e028b7Ted Kremeneknamespace ento { 265a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis 27ef3643fbbbf66247c5e205497fae0f46e240c143David Blaikieclass PathDiagnosticConsumer; 28c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenektypedef std::vector<PathDiagnosticConsumer*> PathDiagnosticConsumers; 295a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis 305fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rose#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN)\ 315fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rosevoid CREATEFN(AnalyzerOptions &AnalyzerOpts,\ 325fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rose PathDiagnosticConsumers &C,\ 335fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rose const std::string &Prefix,\ 345fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rose const Preprocessor &PP); 355fba5a789a238c29ef811a39a39be722443ec1b1Jordan Rose#include "clang/StaticAnalyzer/Core/Analyses.def" 36ebd4f52093b93fed57dcab6fa3a9033e3850ca4bArgyrios Kyrtzidis 37c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenek} // end 'ento' namespace 38c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenek} // end 'clang' namespace 395a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis 4088f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek#endif 41