//===--- AnalysisConsumer.cpp - ASTConsumer for running Analyses ----------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // "Meta" ASTConsumer for running different source analyses. // //===----------------------------------------------------------------------===// #ifndef DRIVER_ANALYSISCONSUMER_H #define DRIVER_ANALYSISCONSUMER_H namespace clang { enum Analyses { #define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME, #include "Analyses.def" NumAnalyses }; enum AnalysisStores { #define ANALYSIS_STORE(NAME, CMDFLAG, DESC) NAME##Model, #include "Analyses.def" NumStores }; enum AnalysisDiagClients { #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATFN) PD_##NAME, #include "Analyses.def" NUM_ANALYSIS_DIAG_CLIENTS }; ASTConsumer* CreateAnalysisConsumer(Analyses* Beg, Analyses* End, AnalysisStores SM, AnalysisDiagClients DC, Diagnostic &diags, Preprocessor* pp, PreprocessorFactory* ppf, const LangOptions& lopts, const std::string& fname, const std::string& htmldir, bool VisualizeGraphViz, bool VisualizeUbi, bool VizTrimGraph, bool AnalyzeAll); } // end clang namespace #endif