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.shouldSynthesizeBodies(),
30 Options.shouldConditionalizeStaticInitializers(),
33 Ctx(ASTCtx), Diags(diags), LangOpts(lang), PathConsumers(PDC),
34 CreateStoreMgr(storemgr), CreateConstraintMgr(constraintmgr),
35 CheckerMgr(checkerMgr),
options(Options) {
41 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
42 E = PathConsumers.end(); I != E; ++I) {
49 for (PathDiagnosticConsumers::iterator I = PathConsumers.begin(),
50 E = PathConsumers.end();
52 (*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)