From: Ted Kremenek Date: Fri, 25 Jun 2010 20:59:24 +0000 (+0000) Subject: Fix -analyze-display-progress (once again), this time with an additional regression... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c4a1437c15da43eb8d2601cdce13161ef41a4389;p=clang Fix -analyze-display-progress (once again), this time with an additional regression test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106883 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Checker/AnalysisConsumer.cpp b/lib/Checker/AnalysisConsumer.cpp index 4cdfd31126..7c5f8ca56e 100644 --- a/lib/Checker/AnalysisConsumer.cpp +++ b/lib/Checker/AnalysisConsumer.cpp @@ -80,8 +80,6 @@ public: const Preprocessor &PP; const std::string OutDir; AnalyzerOptions Opts; - bool declDisplayed; - // PD is owned by AnalysisManager. PathDiagnosticClient *PD; @@ -95,7 +93,7 @@ public: const std::string& outdir, const AnalyzerOptions& opts) : Ctx(0), PP(pp), OutDir(outdir), - Opts(opts), declDisplayed(false), PD(0) { + Opts(opts), PD(0) { DigestAnalyzerOptions(); } @@ -138,10 +136,9 @@ public: } void DisplayFunction(const Decl *D) { - if (!Opts.AnalyzerDisplayProgress || declDisplayed) + if (!Opts.AnalyzerDisplayProgress) return; - declDisplayed = true; SourceManager &SM = Mgr->getASTContext().getSourceManager(); PresumedLoc Loc = SM.getPresumedLoc(D->getLocation()); llvm::errs() << "ANALYZE: " << Loc.getFilename(); @@ -210,6 +207,7 @@ void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) { if (!Opts.AnalyzeSpecificFunction.empty() && FD->getDeclName().getAsString() != Opts.AnalyzeSpecificFunction) break; + DisplayFunction(FD); HandleCode(FD, FD->getBody(), FunctionActions); } break; @@ -222,6 +220,7 @@ void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) { if (!Opts.AnalyzeSpecificFunction.empty() && Opts.AnalyzeSpecificFunction != MD->getSelector().getAsString()) break; + DisplayFunction(MD); HandleCode(MD, MD->getBody(), ObjCMethodActions); } break; diff --git a/test/Analysis/analyze_display_progress.c b/test/Analysis/analyze_display_progress.c new file mode 100644 index 0000000000..958ed009ff --- /dev/null +++ b/test/Analysis/analyze_display_progress.c @@ -0,0 +1,9 @@ +// RUN: %clang_cc1 -analyze -analyzer-display-progress %s 2>&1 | FileCheck %s + +void f() {}; +void g() {}; +void h() {} + +// CHECK: analyze_display_progress.c f +// CHECK: analyze_display_progress.c g +// CHECK: analyze_display_progress.c h \ No newline at end of file