[cfe-commits] r72097 - in /cfe/trunk/tools/clang-cc: AnalysisConsumer.cpp AnalysisConsumer.h clang-cc.cpp clang-cc.h

Ted Kremenek kremenek at apple.com
Tue May 19 07:17:06 PDT 2009


Thanks Eli.  This looks great to me.

On May 18, 2009, at 8:57 PM, Eli Friedman wrote:

> Author: efriedma
> Date: Mon May 18 22:57:28 2009
> New Revision: 72097
>
> URL: http://llvm.org/viewvc/llvm-project?rev=72097&view=rev
> Log:
> Move CreateAnalysisConsumer into a separate header AnalysisConsumer.h.
> Start moving things around in the direction of refactoring the
> command-line options out of AnalysisConsumer.cpp.
>
>
> Added:
>    cfe/trunk/tools/clang-cc/AnalysisConsumer.h
> Modified:
>    cfe/trunk/tools/clang-cc/AnalysisConsumer.cpp
>    cfe/trunk/tools/clang-cc/clang-cc.cpp
>    cfe/trunk/tools/clang-cc/clang-cc.h
>
> Modified: cfe/trunk/tools/clang-cc/AnalysisConsumer.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/AnalysisConsumer.cpp?rev=72097&r1=72096&r2=72097&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- cfe/trunk/tools/clang-cc/AnalysisConsumer.cpp (original)
> +++ cfe/trunk/tools/clang-cc/AnalysisConsumer.cpp Mon May 18  
> 22:57:28 2009
> @@ -11,7 +11,7 @@
> //
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -#include "clang-cc.h"
> +#include "AnalysisConsumer.h"
> #include "clang/Frontend/PathDiagnosticClients.h"
> #include "clang/Frontend/ManagerRegistry.h"
> #include "clang/AST/ASTConsumer.h"
> @@ -44,13 +44,6 @@
> // Analyzer Options: available analyses.
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -/// Analysis - Set of available source code analyses.
> -enum Analyses {
> -#define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME,
> -#include "Analyses.def"
> -NumAnalyses
> -};
> -
> static llvm::cl::list<Analyses>
> AnalysisList(llvm::cl::desc("Source Code Analysis - Checks and  
> Analyses"),
> llvm::cl::values(
> @@ -63,13 +56,6 @@
> // Analyzer Options: store model.
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -/// AnalysisStores - Set of available analysis store models.
> -enum AnalysisStores {
> -#define ANALYSIS_STORE(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
> -#include "Analyses.def"
> -NumStores
> -};
> -
> static llvm::cl::opt<AnalysisStores>
> AnalysisStoreOpt("analyzer-store",
>   llvm::cl::desc("Source Code Analysis - Abstract Memory Store  
> Models"),
> @@ -84,13 +70,6 @@
> // Analyzer Options: constraint engines.
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -/// AnalysisConstraints - Set of available constraint models.
> -enum AnalysisConstraints {
> -#define ANALYSIS_CONSTRAINTS(NAME, CMDFLAG, DESC, CREATFN)  
> NAME##Model,
> -#include "Analyses.def"
> -NumConstraints
> -};
> -
> static llvm::cl::opt<AnalysisConstraints>
> AnalysisConstraintsOpt("analyzer-constraints",
>   llvm::cl::desc("Source Code Analysis - Symbolic Constraint  
> Engines"),
> @@ -105,14 +84,6 @@
> // Analyzer Options: diagnostic clients.
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -/// AnalysisDiagClients - Set of available diagnostic clients for  
> rendering
> -///  analysis results.
> -enum AnalysisDiagClients {
> -#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATFN,  
> AUTOCREAT) PD_##NAME,
> -#include "Analyses.def"
> -NUM_ANALYSIS_DIAG_CLIENTS
> -};
> -
> static llvm::cl::opt<AnalysisDiagClients>
> AnalysisDiagOpt("analyzer-output",
>                 llvm::cl::desc("Source Code Analysis - Output  
> Options"),
>
> Added: cfe/trunk/tools/clang-cc/AnalysisConsumer.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/AnalysisConsumer.h?rev=72097&view=auto
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- cfe/trunk/tools/clang-cc/AnalysisConsumer.h (added)
> +++ cfe/trunk/tools/clang-cc/AnalysisConsumer.h Mon May 18 22:57:28  
> 2009
> @@ -0,0 +1,78 @@
> +//===--- AnalysisConsumer.h - Front-end hooks for the analysis  
> engine------===//
> +//
> +//                     The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open  
> Source
> +// License. See LICENSE.TXT for details.
> +//
> +// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> +//
> +// This header contains the functions necessary for a front-end to  
> run various
> +// analyses.
> +//
> +// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> +
> +#include <string>
> +#include <vector>
> +
> +namespace clang {
> +class ASTConsumer;
> +class Diagnostic;
> +class Preprocessor;
> +class PreprocessorFactory;
> +class LangOptions;
> +
> +/// Analysis - Set of available source code analyses.
> +enum Analyses {
> +#define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME,
> +#include "Analyses.def"
> +NumAnalyses
> +};
> +
> +/// AnalysisStores - Set of available analysis store models.
> +enum AnalysisStores {
> +#define ANALYSIS_STORE(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
> +#include "Analyses.def"
> +NumStores
> +};
> +
> +/// AnalysisConstraints - Set of available constraint models.
> +enum AnalysisConstraints {
> +#define ANALYSIS_CONSTRAINTS(NAME, CMDFLAG, DESC, CREATFN)  
> NAME##Model,
> +#include "Analyses.def"
> +NumConstraints
> +};
> +
> +/// AnalysisDiagClients - Set of available diagnostic clients for  
> rendering
> +///  analysis results.
> +enum AnalysisDiagClients {
> +#define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATFN,  
> AUTOCREAT) PD_##NAME,
> +#include "Analyses.def"
> +NUM_ANALYSIS_DIAG_CLIENTS
> +};
> +
> +// FIXME: Use this instead of using command-line options directly.
> +struct AnalyzerOptions {
> +  std::vector<Analyses> AnalysisList;
> +  AnalysisStores AnalysisStoreOpt;
> +  AnalysisConstraints AnalysisConstraintsOpt;
> +  AnalysisDiagClients AnalysisDiagOpt;
> +  bool VisualizeEGDot;
> +  bool VisualizeEGUbi;
> +  bool AnalyzeAll;
> +  bool AnalyzerDisplayProgress;
> +  bool PurgeDead;
> +  bool EagerlyAssume;
> +  std::string AnalyzeSpecificFunction;
> +  bool TrimGraph;
> +};
> +
> +/// CreateAnalysisConsumer - Creates an ASTConsumer to run various  
> code
> +/// analysis passes.  (The set of analyses run is controlled by  
> command-line
> +/// options.)
> +ASTConsumer* CreateAnalysisConsumer(Diagnostic &diags, Preprocessor  
> *pp,
> +                                    PreprocessorFactory *ppf,
> +                                    const LangOptions &lopts,
> +                                    const std::string &output);
> +
> +}
>
> Modified: cfe/trunk/tools/clang-cc/clang-cc.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/clang-cc.cpp?rev=72097&r1=72096&r2=72097&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- cfe/trunk/tools/clang-cc/clang-cc.cpp (original)
> +++ cfe/trunk/tools/clang-cc/clang-cc.cpp Mon May 18 22:57:28 2009
> @@ -23,6 +23,7 @@
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> #include "clang-cc.h"
> +#include "AnalysisConsumer.h"
> #include "clang/Frontend/ASTConsumers.h"
> #include "clang/Frontend/CompileOptions.h"
> #include "clang/Frontend/FixItRewriter.h"
>
> Modified: cfe/trunk/tools/clang-cc/clang-cc.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/clang-cc.h?rev=72097&r1=72096&r2=72097&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- cfe/trunk/tools/clang-cc/clang-cc.h (original)
> +++ cfe/trunk/tools/clang-cc/clang-cc.h Mon May 18 22:57:28 2009
> @@ -74,14 +74,6 @@
> /// a seekable stream.
> void CacheTokens(Preprocessor& PP, llvm::raw_fd_ostream* OS);
>
> -/// CreateAnalysisConsumer - Creates an ASTConsumer to run various  
> code
> -/// analysis passes.  (The set of analyses run is controlled by  
> command-line
> -/// options.)
> -ASTConsumer* CreateAnalysisConsumer(Diagnostic &diags, Preprocessor  
> *pp,
> -                                    PreprocessorFactory *ppf,
> -                                    const LangOptions &lopts,
> -                                    const std::string &output);
> -
> }  // end namespace clang
>
> #endif
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list