PathDiagnosticConsumers.h revision 9fcc2ab2ec5e00802880e205568ff3afbd70a773
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
309fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenek#define CREATE_CONSUMER(NAME)\
319fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenekvoid create ## NAME ## DiagnosticConsumer(AnalyzerOptions &AnalyzerOpts,\
329fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenek                                          PathDiagnosticConsumers &C,\
339fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenek                                          const std::string& prefix,\
349fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenek                                          const Preprocessor &PP);
351eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump
369fcc2ab2ec5e00802880e205568ff3afbd70a773Ted KremenekCREATE_CONSUMER(HTML)
379fcc2ab2ec5e00802880e205568ff3afbd70a773Ted KremenekCREATE_CONSUMER(Plist)
389fcc2ab2ec5e00802880e205568ff3afbd70a773Ted KremenekCREATE_CONSUMER(PlistMultiFile)
399fcc2ab2ec5e00802880e205568ff3afbd70a773Ted KremenekCREATE_CONSUMER(TextPath)
4088f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek
419fcc2ab2ec5e00802880e205568ff3afbd70a773Ted Kremenek#undef CREATE_CONSUMER
42ebd4f52093b93fed57dcab6fa3a9033e3850ca4bArgyrios Kyrtzidis
43c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenek} // end 'ento' namespace
44c4bac8e376b98d633bb00ee5f510d5e58449753cTed Kremenek} // end 'clang' namespace
455a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis
4688f5cde90dbb5f28cc269071d5ab11436767a1e1Ted Kremenek#endif
47