diff options
-rw-r--r-- | include/clang/Analysis/PathSensitive/AnalysisManager.h | 5 | ||||
-rw-r--r-- | lib/Frontend/AnalysisConsumer.cpp | 9 |
2 files changed, 6 insertions, 8 deletions
diff --git a/include/clang/Analysis/PathSensitive/AnalysisManager.h b/include/clang/Analysis/PathSensitive/AnalysisManager.h index f1b413633e..e7371de656 100644 --- a/include/clang/Analysis/PathSensitive/AnalysisManager.h +++ b/include/clang/Analysis/PathSensitive/AnalysisManager.h @@ -29,7 +29,7 @@ class AnalysisManager : public BugReporterData { Diagnostic &Diags; const LangOptions &LangInfo; - llvm::OwningPtr<PathDiagnosticClient> PD; + PathDiagnosticClient *PD; // Configurable components creators. StoreManagerCreator CreateStoreMgr; @@ -51,7 +51,6 @@ public: ConstraintManagerCreator constraintmgr, bool displayProgress, bool vizdot, bool vizubi, bool purge, bool eager, bool trim) - : Ctx(ctx), Diags(diags), LangInfo(lang), PD(pd), CreateStoreMgr(storemgr), CreateConstraintMgr(constraintmgr), AScope(ScopeDecl), DisplayedFunction(!displayProgress), @@ -124,7 +123,7 @@ public: } virtual PathDiagnosticClient *getPathDiagnosticClient() { - return PD.get(); + return PD; } bool shouldVisualizeGraphviz() const { return VisualizeEGDot; } diff --git a/lib/Frontend/AnalysisConsumer.cpp b/lib/Frontend/AnalysisConsumer.cpp index 6ed59b4ac2..ed7ea5e8e7 100644 --- a/lib/Frontend/AnalysisConsumer.cpp +++ b/lib/Frontend/AnalysisConsumer.cpp @@ -84,8 +84,7 @@ namespace { const std::string OutDir; AnalyzerOptions Opts; - // PD is owned by AnalysisManager. - PathDiagnosticClient *PD; + llvm::OwningPtr<PathDiagnosticClient> PD; StoreManagerCreator CreateStoreMgr; ConstraintManagerCreator CreateConstraintMgr; @@ -106,7 +105,7 @@ namespace { switch (Opts.AnalysisDiagOpt) { default: #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATEFN, AUTOCREATE) \ - case PD_##NAME: PD = CREATEFN(OutDir, PP, PPF); break; + case PD_##NAME: PD.reset(CREATEFN(OutDir, PP, PPF)); break; #include "clang/Frontend/Analyses.def" } } @@ -216,7 +215,7 @@ void AnalysisConsumer::HandleTopLevelSingleDecl(Decl *D) { void AnalysisConsumer::HandleTranslationUnit(ASTContext &C) { if(!TranslationUnitActions.empty()) { - AnalysisManager mgr(*Ctx, Diags, LOpts, PD, + AnalysisManager mgr(*Ctx, Diags, LOpts, PD.get(), CreateStoreMgr, CreateConstraintMgr, Opts.AnalyzerDisplayProgress, Opts.VisualizeEGDot, Opts.VisualizeEGUbi, Opts.PurgeDead, Opts.EagerlyAssume, @@ -251,7 +250,7 @@ void AnalysisConsumer::HandleCode(Decl* D, Stmt* Body, Actions& actions) { // Create an AnalysisManager that will manage the state for analyzing // this method/function. - AnalysisManager mgr(D, *Ctx, Diags, LOpts, PD, + AnalysisManager mgr(D, *Ctx, Diags, LOpts, PD.get(), CreateStoreMgr, CreateConstraintMgr, Opts.AnalyzerDisplayProgress, Opts.VisualizeEGDot, Opts.VisualizeEGUbi, Opts.PurgeDead, Opts.EagerlyAssume, |