15 #ifndef LLVM_CLANG_STATICANALYZER_CORE_ANALYZEROPTIONS_H
16 #define LLVM_CLANG_STATICANALYZER_CORE_ANALYZEROPTIONS_H
19 #include "llvm/ADT/IntrusiveRefCntPtr.h"
20 #include "llvm/ADT/Optional.h"
21 #include "llvm/ADT/StringMap.h"
27 class DiagnosticsEngine;
37 #define ANALYSIS(NAME, CMDFLAG, DESC, SCOPE) NAME,
38 #include "clang/StaticAnalyzer/Core/Analyses.def"
44 #define ANALYSIS_STORE(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
45 #include "clang/StaticAnalyzer/Core/Analyses.def"
51 #define ANALYSIS_CONSTRAINTS(NAME, CMDFLAG, DESC, CREATFN) NAME##Model,
52 #include "clang/StaticAnalyzer/Core/Analyses.def"
59 #define ANALYSIS_DIAGNOSTICS(NAME, CMDFLAG, DESC, CREATFN) PD_##NAME,
60 #include "clang/StaticAnalyzer/Core/Analyses.def"
67 #define ANALYSIS_PURGE(NAME, CMDFLAG, DESC) NAME,
68 #include "clang/StaticAnalyzer/Core/Analyses.def"
74 #define ANALYSIS_INLINING_MODE(NAME, CMDFLAG, DESC) NAME,
75 #include "clang/StaticAnalyzer/Core/Analyses.def"
196 UserModeKind UserMode;
281 StringRef getCheckerOption(StringRef CheckerName, StringRef OptionName,
283 bool SearchInParents =
false);
302 bool SearchInParents =
false);
320 bool SearchInParents =
false);
337 bool SearchInParents =
false);
354 bool SearchInParents =
false);
533 UserMode(UMK_NotSet),
535 CXXMemberInliningMode() {}
Inline C functions and blocks when their definitions are available.
unsigned InlineMaxStackDepth
The inlining stack depth limit.
IPAKind
Describes the different modes of inter-procedural analysis.
bool shouldSuppressNullReturnPaths()
unsigned visualizeExplodedGraphWithGraphViz
bool shouldAvoidSuppressingNullArgumentPaths()
Perform only intra-procedural analysis.
A dummy mode in which no C++ inlining is enabled.
bool mayInlineTemplateFunctions()
Inline callees(C, C++, ObjC) when their definitions are available.
unsigned eagerlyAssumeBinOpBifurcation
The flag regulates if we should eagerly assume evaluations of conditionals, thus, bifurcating the pat...
StringRef getOptionAsString(StringRef Name, StringRef DefaultVal, const ento::CheckerBase *C=nullptr, bool SearchInParents=false)
bool mayInlineCXXContainerMethods()
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
std::vector< std::pair< std::string, bool > > CheckersControlList
Pair of checker name and enable/disable.
AnalysisStores
AnalysisStores - Set of available analysis store models.
unsigned getMaxInlinableSize()
UserModeKind getUserMode()
Retrieves and sets the UserMode. This is a high-level option, which is used to set other low-level op...
bool shouldSuppressInlinedDefensiveChecks()
AnalysisDiagClients AnalysisDiagOpt
AnalysisInliningMode InliningMode
The mode of function selection used during inlining.
bool shouldWriteStableReportFilename()
IPAKind getIPAMode()
Returns the inter-procedural analysis mode.
Refers to regular member function and operator calls.
bool mayInlineObjCMethod()
Returns true if ObjectiveC inlining is enabled, false otherwise.
bool shouldConditionalizeStaticInitializers()
AnalysisInliningMode
AnalysisInlineFunctionSelection - Set of inlining function selection heuristics.
Enable inlining of dynamically dispatched methods.
bool getBooleanOption(StringRef Name, bool DefaultVal, const ento::CheckerBase *C=nullptr, bool SearchInParents=false)
AnalysisConstraints
AnalysisConstraints - Set of available constraint models.
unsigned getAlwaysInlineSize()
unsigned getMaxNodesPerTopLevelFunction()
AnalysisStores AnalysisStoreOpt
ConfigTable Config
A key-value table of use-specified configuration values.
bool mayInlineCXXStandardLibrary()
unsigned visualizeExplodedGraphWithUbiGraph
Refers to destructors (implicit or explicit).
unsigned maxBlockVisitOnPath
The maximum number of times the analyzer visits a block.
unsigned DisableAllChecks
Disable all analyzer checks.
unsigned getGraphTrimInterval()
AnalysisConstraints AnalysisConstraintsOpt
std::string AnalyzeSpecificFunction
bool includeTemporaryDtorsInCFG()
bool shouldSuppressFromCXXStandardLibrary()
AnalysisPurgeMode
AnalysisPurgeModes - Set of available strategies for dead symbol removal.
unsigned AnalyzerDisplayProgress
IntrusiveRefCntPtr< AnalyzerOptions > AnalyzerOptionsRef
bool shouldSynthesizeBodies()
unsigned AnalyzeNestedBlocks
unsigned NoRetryExhausted
Do not re-analyze paths leading to exhausted nodes with a different strategy. We get better code cove...
bool mayInlineCXXMemberFunction(CXXInlineableMemberKind K)
Analyses
Analysis - Set of available source code analyses.
llvm::StringMap< std::string > ConfigTable
unsigned getMaxTimesInlineLarge()
CXXInlineableMemberKind
Describes the different kinds of C++ member functions which can be considered for inlining by the ana...
bool mayInlineCXXAllocator()
int getOptionAsInteger(StringRef Name, int DefaultVal, const ento::CheckerBase *C=nullptr, bool SearchInParents=false)
AnalysisPurgeMode AnalysisPurgeOpt
bool mayInlineCXXSharedPtrDtor()
bool shouldReportIssuesInMainSourceFile()