Diagnostic &Diags;
const LangOptions &LangInfo;
- llvm::OwningPtr<PathDiagnosticClient> PD;
+ PathDiagnosticClient *PD;
// Configurable components creators.
StoreManagerCreator CreateStoreMgr;
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),
}
virtual PathDiagnosticClient *getPathDiagnosticClient() {
- return PD.get();
+ return PD;
}
bool shouldVisualizeGraphviz() const { return VisualizeEGDot; }
const std::string OutDir;
AnalyzerOptions Opts;
- // PD is owned by AnalysisManager.
- PathDiagnosticClient *PD;
+ llvm::OwningPtr<PathDiagnosticClient> PD;
StoreManagerCreator CreateStoreMgr;
ConstraintManagerCreator CreateConstraintMgr;
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"
}
}
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,
// 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,