aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Analysis/PathSensitive/AnalysisManager.h5
-rw-r--r--lib/Frontend/AnalysisConsumer.cpp9
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,