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" 128 static std::vector<StringRef>
129 getRegisteredCheckers(
bool IncludeExperimental =
false);
200 UserModeKind UserMode;
309 StringRef getCheckerOption(StringRef CheckerName, StringRef OptionName,
311 bool SearchInParents =
false);
328 bool getBooleanOption(StringRef Name,
bool DefaultVal,
330 bool SearchInParents =
false);
346 bool getBooleanOption(
Optional<bool> &V, StringRef Name,
bool DefaultVal,
348 bool SearchInParents =
false);
363 int getOptionAsInteger(StringRef Name,
int DefaultVal,
365 bool SearchInParents =
false);
380 StringRef getOptionAsString(StringRef Name, StringRef DefaultVal,
382 bool SearchInParents =
false);
387 UserModeKind getUserMode();
401 bool mayInlineObjCMethod();
408 bool includeTemporaryDtorsInCFG();
415 bool includeImplicitDtorsInCFG();
422 bool includeLifetimeInCFG();
429 bool includeLoopExitInCFG();
436 bool mayInlineCXXStandardLibrary();
442 bool mayInlineTemplateFunctions();
448 bool mayInlineCXXAllocator();
455 bool mayInlineCXXContainerMethods();
465 bool mayInlineCXXSharedPtrDtor();
475 bool shouldSuppressNullReturnPaths();
486 bool shouldAvoidSuppressingNullArgumentPaths();
493 bool shouldSuppressInlinedDefensiveChecks();
500 bool shouldSuppressFromCXXStandardLibrary();
507 bool shouldReportIssuesInMainSourceFile();
513 bool shouldWriteStableReportFilename();
520 bool shouldPrunePaths();
524 bool shouldConditionalizeStaticInitializers();
530 unsigned getAlwaysInlineSize();
536 unsigned getMaxInlinableSize();
540 bool shouldSynthesizeBodies();
547 unsigned getGraphTrimInterval();
552 unsigned getMaxTimesInlineLarge();
559 unsigned getMinCFGSizeTreatFunctionsAsLarge();
566 unsigned getMaxNodesPerTopLevelFunction();
570 bool shouldInlineLambdas();
574 bool shouldWidenLoops();
578 bool shouldUnrollLoops();
586 bool shouldDisplayNotesAsEvents();
590 AnalysisStoreOpt(RegionStoreModel),
591 AnalysisConstraintsOpt(RangeConstraintsModel),
592 AnalysisDiagOpt(PD_HTML),
593 AnalysisPurgeOpt(PurgeStmt),
596 ShowEnabledCheckerList(0),
598 AnalyzerDisplayProgress(0),
599 AnalyzeNestedBlocks(0),
600 eagerlyAssumeBinOpBifurcation(0),
602 visualizeExplodedGraphWithGraphViz(0),
603 visualizeExplodedGraphWithUbiGraph(0),
608 InlineMaxStackDepth(5),
609 InliningMode(NoRedundancy),
610 UserMode(UMK_NotSet),
612 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.
unsigned visualizeExplodedGraphWithGraphViz
Perform only intra-procedural analysis.
A dummy mode in which no C++ inlining is enabled.
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...
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.
AnalysisDiagClients AnalysisDiagOpt
AnalysisInliningMode InliningMode
The mode of function selection used during inlining.
unsigned ShowEnabledCheckerList
Refers to regular member function and operator calls.
AnalysisInliningMode
AnalysisInlineFunctionSelection - Set of inlining function selection heuristics.
Refers to constructors (implicit or explicit).
Enable inlining of dynamically dispatched methods.
AnalysisConstraints
AnalysisConstraints - Set of available constraint models.
AnalysisStores AnalysisStoreOpt
ConfigTable Config
A key-value table of use-specified configuration values.
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.
Dataflow Directional Tag Classes.
AnalysisConstraints AnalysisConstraintsOpt
std::string AnalyzeSpecificFunction
AnalysisPurgeMode
AnalysisPurgeModes - Set of available strategies for dead symbol removal.
unsigned AnalyzerDisplayProgress
IntrusiveRefCntPtr< AnalyzerOptions > AnalyzerOptionsRef
unsigned AnalyzeNestedBlocks
unsigned NoRetryExhausted
Do not re-analyze paths leading to exhausted nodes with a different strategy.
Analyses
Analysis - Set of available source code analyses.
llvm::StringMap< std::string > ConfigTable
CXXInlineableMemberKind
Describes the different kinds of C++ member functions which can be considered for inlining by the ana...
AnalysisPurgeMode AnalysisPurgeOpt
Enable inlining of dynamically dispatched methods, bifurcate paths when exact type info is unavailabl...
AnalysisDiagClients
AnalysisDiagClients - Set of available diagnostic clients for rendering analysis results.