12 using namespace clang;
15 void AnalysisManager::anchor() { }
22 : AnaCtxMgr(ASTCtx, Options.UnoptimizedCFG,
23 Options.includeImplicitDtorsInCFG(),
24 true, Options.includeTemporaryDtorsInCFG(),
25 Options.includeLifetimeInCFG(),
28 Options.includeLoopExitInCFG() || Options.shouldUnrollLoops(),
29 Options.includeScopesInCFG(),
30 Options.shouldSynthesizeBodies(),
31 Options.shouldConditionalizeStaticInitializers(),
33 Options.includeRichConstructorsInCFG(),
34 Options.shouldElideConstructors(),
36 Ctx(ASTCtx), Diags(diags), LangOpts(lang), PathConsumers(PDC),
37 CreateStoreMgr(storemgr), CreateConstraintMgr(constraintmgr),
38 CheckerMgr(checkerMgr),
options(Options) {
44 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
45 E = PathConsumers.end(); I != E; ++I) {
52 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
53 E = PathConsumers.end();
55 (*I)->FlushDiagnostics(&filesMade);
~AnalysisManager() override
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
std::unique_ptr< StoreManager >(* StoreManagerCreator)(ProgramStateManager &)
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
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 ...
AnalysisManager(ASTContext &ctx, DiagnosticsEngine &diags, const LangOptions &lang, const PathDiagnosticConsumers &Consumers, StoreManagerCreator storemgr, ConstraintManagerCreator constraintmgr, CheckerManager *checkerMgr, AnalyzerOptions &Options, CodeInjector *injector=nullptr)