14#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H
15#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H
32 virtual void anchor();
69 return CreateStoreMgr;
77 return CreateConstraintMgr;
112 template <
typename T>
126 if (
SM.isInMainFile(SL))
134 if (!IL.
isValid() || !
SM.isInMainFile(IL))
138 if (
SM.getFilename(IL).contains(
"UnifiedSource")) {
141 return llvm::StringSwitch<bool>(
SM.getFilename(SL).rsplit(
'.').second)
142 .Cases(
"c",
"m",
"mm",
"C",
"cc",
"cp",
true)
143 .Cases(
"cpp",
"CPP",
"c++",
"cxx",
"cppm",
true)
This file defines AnalysisDeclContext, a class that manages the analysis context data for context sen...
Defines the clang::Preprocessor interface.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
SourceManager & getSourceManager()
void clear()
Discard all previously created AnalysisDeclContexts.
AnalysisDeclContext * getContext(const Decl *D)
AnalysisDeclContext contains the context data for the function, method or block under analysis.
ParentMap & getParentMap()
Stores options for the analyzer from the command line.
unsigned visualizeExplodedGraphWithGraphViz
IPAKind getIPAMode() const
Returns the inter-procedural analysis mode.
Represents a source-level, intra-procedural CFG that represents the control-flow of a Stmt.
CodeInjector is an interface which is responsible for injecting AST of function definitions that may ...
Decl - This represents one declaration (or definition), e.g.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Engages in a tight little dance with the lexer to efficiently preprocess tokens.
Encodes a location in the source.
bool isValid() const
Return true if this is a valid SourceLocation object.
This class handles loading and caching of source files into memory.
const LangOptions & getLangOpts() const
ConstraintManagerCreator getConstraintManagerCreator()
ASTContext & getASTContext() override
ArrayRef< PathDiagnosticConsumer * > getPathDiagnosticConsumers() override
Preprocessor & getPreprocessor() override
static bool isInCodeFile(SourceLocation SL, const SourceManager &SM)
bool isInCodeFile(SourceLocation SL)
AnalysisDeclContext * getAnalysisDeclContext(const Decl *D)
AnalysisDeclContextManager & getAnalysisDeclContextManager()
SourceManager & getSourceManager() override
T * getAnalysis(Decl const *D)
bool shouldVisualize() const
StoreManagerCreator getStoreManagerCreator()
AnalyzerOptions & options
~AnalysisManager() override
ParentMap & getParentMap(Decl const *D)
bool shouldInlineCall() const
CheckerManager * getCheckerManager() const
CFG * getCFG(Decl const *D)
AnalyzerOptions & getAnalyzerOptions() override
std::unique_ptr< ConstraintManager >(* ConstraintManagerCreator)(ProgramStateManager &, ExprEngine *)
std::vector< PathDiagnosticConsumer * > PathDiagnosticConsumers
std::unique_ptr< StoreManager >(* StoreManagerCreator)(ProgramStateManager &)
The JSON file list parser is used to communicate input to InstallAPI.
@ IPAK_None
Perform only intra-procedural analysis.
const FunctionProtoType * T