[cfe-commits] r62875 - in /cfe/trunk: Driver/AnalysisConsumer.cpp Driver/AnalysisConsumer.h Driver/clang.cpp utils/ccc-analyzer

Ted Kremenek kremenek at apple.com
Fri Jan 23 12:52:26 PST 2009


Author: kremenek
Date: Fri Jan 23 14:52:26 2009
New Revision: 62875

URL: http://llvm.org/viewvc/llvm-project?rev=62875&view=rev
Log:
Added clang option '--analyzer-display-progress' to indicate that the analyzer should output 'ANALYZE:' messages to display its progress on a source file.

Modified:
    cfe/trunk/Driver/AnalysisConsumer.cpp
    cfe/trunk/Driver/AnalysisConsumer.h
    cfe/trunk/Driver/clang.cpp
    cfe/trunk/utils/ccc-analyzer

Modified: cfe/trunk/Driver/AnalysisConsumer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/AnalysisConsumer.cpp?rev=62875&r1=62874&r2=62875&view=diff

==============================================================================
--- cfe/trunk/Driver/AnalysisConsumer.cpp (original)
+++ cfe/trunk/Driver/AnalysisConsumer.cpp Fri Jan 23 14:52:26 2009
@@ -86,6 +86,7 @@
     bool AnalyzeAll;  
     AnalysisStores SM;
     AnalysisDiagClients DC;
+    const bool DisplayProgress;
 
     AnalysisConsumer(Diagnostic &diags, Preprocessor* pp,
                      PreprocessorFactory* ppf,
@@ -93,13 +94,15 @@
                      const std::string& fname,
                      const std::string& htmldir,
                      AnalysisStores sm, AnalysisDiagClients dc,
-                     bool visgraphviz, bool visubi, bool trim, bool analyzeAll)
+                     bool visgraphviz, bool visubi, bool trim, bool analyzeAll,
+                     bool displayProgress)
       : VisGraphviz(visgraphviz), VisUbigraph(visubi), TrimGraph(trim),
         LOpts(lopts), Diags(diags),
         Ctx(0), PP(pp), PPF(ppf),
         HTMLDir(htmldir),
         FName(fname),
-        AnalyzeAll(analyzeAll), SM(sm), DC(dc) {}
+        AnalyzeAll(analyzeAll), SM(sm), DC(dc),
+        DisplayProgress(displayProgress) {}
     
     void addCodeAction(CodeAction action) {
       FunctionActions.push_back(action);
@@ -143,13 +146,16 @@
     ConstraintManagerCreator CreateConstraintMgr;
 
   public:
-    AnalysisManager(AnalysisConsumer& c, Decl* d, Stmt* b) 
-      : D(d), Body(b), TU(0), AScope(ScopeDecl), C(c), DisplayedFunction(false){
+    AnalysisManager(AnalysisConsumer& c, Decl* d, Stmt* b, bool displayProgress) 
+      : D(d), Body(b), TU(0), AScope(ScopeDecl), C(c), 
+        DisplayedFunction(!displayProgress) {
       setManagerCreators();
     }
     
-    AnalysisManager(AnalysisConsumer& c, TranslationUnit* tu) 
-      : D(0), Body(0), TU(tu), AScope(ScopeTU), C(c), DisplayedFunction(false) {
+    AnalysisManager(AnalysisConsumer& c, TranslationUnit* tu,
+                    bool displayProgress) 
+      : D(0), Body(0), TU(tu), AScope(ScopeTU), C(c),
+        DisplayedFunction(!displayProgress) {
       setManagerCreators();
     }
     
@@ -347,7 +353,7 @@
 void AnalysisConsumer::HandleTranslationUnit(TranslationUnit& TU) {
 
   if(!TranslationUnitActions.empty()) {
-    AnalysisManager mgr(*this, &TU);
+    AnalysisManager mgr(*this, &TU, DisplayProgress);
     for (Actions::iterator I = TranslationUnitActions.begin(), 
          E = TranslationUnitActions.end(); I != E; ++I)
       (*I)(mgr);  
@@ -382,7 +388,7 @@
 
   // Create an AnalysisManager that will manage the state for analyzing
   // this method/function.
-  AnalysisManager mgr(*this, D, Body);
+  AnalysisManager mgr(*this, D, Body, DisplayProgress);
   
   // Dispatch on the actions.  
   for (Actions::iterator I = actions.begin(), E = actions.end(); I != E; ++I)
@@ -544,11 +550,13 @@
                                            const std::string& htmldir,
                                            bool VisGraphviz, bool VisUbi,
                                            bool trim,
-                                           bool analyzeAll) {
+                                           bool analyzeAll,
+                                           bool displayProgress) {
   
   llvm::OwningPtr<AnalysisConsumer>
   C(new AnalysisConsumer(diags, pp, ppf, lopts, fname, htmldir, SM, DC,
-                         VisGraphviz, VisUbi, trim, analyzeAll));
+                         VisGraphviz, VisUbi, trim, analyzeAll,
+                         displayProgress));
   
   for ( ; Beg != End ; ++Beg)
     switch (*Beg) {

Modified: cfe/trunk/Driver/AnalysisConsumer.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/AnalysisConsumer.h?rev=62875&r1=62874&r2=62875&view=diff

==============================================================================
--- cfe/trunk/Driver/AnalysisConsumer.h (original)
+++ cfe/trunk/Driver/AnalysisConsumer.h Fri Jan 23 14:52:26 2009
@@ -44,7 +44,8 @@
                                     bool VisualizeGraphViz,
                                     bool VisualizeUbi,
                                     bool VizTrimGraph,                                    
-                                    bool AnalyzeAll);
+                                    bool AnalyzeAll,
+                                    bool DisplayProgress);
 } // end clang namespace
 
 #endif

Modified: cfe/trunk/Driver/clang.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/clang.cpp?rev=62875&r1=62874&r2=62875&view=diff

==============================================================================
--- cfe/trunk/Driver/clang.cpp (original)
+++ cfe/trunk/Driver/clang.cpp Fri Jan 23 14:52:26 2009
@@ -218,6 +218,10 @@
     llvm::cl::desc("Force the static analyzer to analyze "
                    "functions defined in header files"));
 
+static llvm::cl::opt<bool>
+AnalyzerDisplayProgress("analyzer-display-progress",
+          llvm::cl::desc("Emit verbose output about the analyzer's progress."));
+
 static llvm::cl::list<Analyses>
 AnalysisList(llvm::cl::desc("SCA Checks/Analyses:"),
 llvm::cl::values(
@@ -1313,7 +1317,8 @@
                                     Diag, PP, PPF, LangOpts,
                                     AnalyzeSpecificFunction,
                                     OutputFile, VisualizeEGDot, VisualizeEGUbi,
-                                    TrimGraph, AnalyzeAll);
+                                    TrimGraph, AnalyzeAll,
+                                    AnalyzerDisplayProgress);
   }
 }
 

Modified: cfe/trunk/utils/ccc-analyzer
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/ccc-analyzer?rev=62875&r1=62874&r2=62875&view=diff

==============================================================================
--- cfe/trunk/utils/ccc-analyzer (original)
+++ cfe/trunk/utils/ccc-analyzer Fri Jan 23 14:52:26 2009
@@ -100,6 +100,7 @@
     push @CmdArgs,@$Args;
     @CmdArgsSansAnalyses = @CmdArgs;
     push @CmdArgs,'--analyze';
+    push @CmdArgs,"--analyzer-display-progress";
     push @CmdArgs,(split /\s/,$Analyses);
     $RunAnalyzer = 1;
   }





More information about the cfe-commits mailing list