clang: include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H
15#define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ANALYSISMANAGER_H
16
23
25
26class CodeInjector;
27
28namespace ento {
29 class CheckerManager;
30
32 virtual void anchor();
34
39
40
43
45
46public:
48
55
57
59 AnaCtxMgr.clear();
60 }
61
63 return AnaCtxMgr;
64 }
65
67
69 return CreateStoreMgr;
70 }
71
74 }
75
77 return CreateConstraintMgr;
78 }
79
81
83 return Ctx;
84 }
85
88 }
89
91 return LangOpts;
92 }
93
95 return PathConsumers;
96 }
97
99
102 }
103
106 }
107
110 }
111
112 template
115 }
116
119 }
120
123 }
124
126 if (SM.isInMainFile(SL))
127 return true;
128
129
130
131
132
134 if (!IL.isValid() || .isInMainFile(IL))
135 return false;
136
137
138 if (SM.getFilename(IL).contains("UnifiedSource")) {
139
140
141 return llvm::StringSwitch(SM.getFilename(SL).rsplit('.').second)
142 .Cases("c", "m", "mm", "C", "cc", "cp", true)
143 .Cases("cpp", "CPP", "c++", "cxx", "cppm", true)
144 .Default(false);
145 }
146
147 return false;
148 }
149
153 }
154};
155
156}
157
158}
159
160#endif
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