12 using namespace clang;
15 void AnalysisManager::anchor() { }
25 ASTCtx, Options.UnoptimizedCFG,
26 Options.ShouldIncludeImplicitDtorsInCFG,
28 Options.ShouldIncludeTemporaryDtorsInCFG,
29 Options.ShouldIncludeLifetimeInCFG,
32 Options.ShouldIncludeLoopExitInCFG ||
33 Options.ShouldUnrollLoops,
34 Options.ShouldIncludeScopesInCFG,
35 Options.ShouldSynthesizeBodies,
36 Options.ShouldConditionalizeStaticInitializers,
38 Options.ShouldIncludeRichConstructorsInCFG,
39 Options.ShouldElideConstructors, injector),
40 Ctx(ASTCtx), Diags(diags), LangOpts(ASTCtx.
getLangOpts()),
41 PathConsumers(PDC), CreateStoreMgr(storemgr),
42 CreateConstraintMgr(constraintmgr), CheckerMgr(checkerMgr),
49 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
50 E = PathConsumers.end(); I != E; ++I) {
57 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
58 E = PathConsumers.end();
60 (*I)->FlushDiagnostics(&filesMade);
~AnalysisManager() override
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
AnalysisManager(ASTContext &ctx, DiagnosticsEngine &diags, const PathDiagnosticConsumers &Consumers, StoreManagerCreator storemgr, ConstraintManagerCreator constraintmgr, CheckerManager *checkerMgr, AnalyzerOptions &Options, CodeInjector *injector=nullptr)
std::unique_ptr< StoreManager >(* StoreManagerCreator)(ProgramStateManager &)
Concrete class used by the front-end to report problems and issues.
std::unique_ptr< ConstraintManager >(* ConstraintManagerCreator)(ProgramStateManager &, SubEngine *)
CFG::BuildOptions & getCFGBuildOptions()
std::vector< PathDiagnosticConsumer * > PathDiagnosticConsumers
AnalyzerOptions & options
BuildOptions & setAllAlwaysAdd()
Dataflow Directional Tag Classes.
CodeInjector is an interface which is responsible for injecting AST of function definitions that may ...
const LangOptions & getLangOpts() const
Stores options for the analyzer from the command line.