diff options
author | Ted Kremenek <kremenek@apple.com> | 2012-10-02 20:42:16 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2012-10-02 20:42:16 +0000 |
commit | 48d05e6d776f4b68f3db4016eb5680ac041c2b7d (patch) | |
tree | 890f115edc54ac794b03e12e1955330d74a545ea /lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | |
parent | 94bb74cef72a33d77c5d6739abfc0840c781eb8e (diff) |
Refactor clients of AnalyzerOptions::getBooleanOption() to have
an intermediate helper method to query and populate the Optional value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165043 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Core/AnalyzerOptions.cpp')
-rw-r--r-- | lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp index 6fbd2e1c6d..2b957c419a 100644 --- a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp +++ b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp @@ -64,44 +64,42 @@ bool AnalyzerOptions::getBooleanOption(StringRef Name, bool DefaultVal) { .Default(DefaultVal); } +bool AnalyzerOptions::getBooleanOption(llvm::Optional<bool> &V, + StringRef Name, + bool DefaultVal) { + if (!V.hasValue()) + V = getBooleanOption(Name, DefaultVal); + return V.getValue(); +} + bool AnalyzerOptions::includeTemporaryDtorsInCFG() { - if (!IncludeTemporaryDtorsInCFG.hasValue()) - const_cast<llvm::Optional<bool> &>(IncludeTemporaryDtorsInCFG) = - getBooleanOption("cfg-temporary-dtors", /*Default=*/false); - - return *IncludeTemporaryDtorsInCFG; + return getBooleanOption(IncludeTemporaryDtorsInCFG, + "cfg-temporary-dtors", + /* Default = */ false); } bool AnalyzerOptions::mayInlineCXXStandardLibrary() { - if (!InlineCXXStandardLibrary.hasValue()) - const_cast<llvm::Optional<bool> &>(InlineCXXStandardLibrary) = - getBooleanOption("c++-stdlib-inlining", /*Default=*/true); - - return *InlineCXXStandardLibrary; + return getBooleanOption(InlineCXXStandardLibrary, + "c++-stdlib-inlining", + /*Default=*/true); } bool AnalyzerOptions::mayInlineTemplateFunctions() { - if (!InlineTemplateFunctions.hasValue()) - const_cast<llvm::Optional<bool> &>(InlineTemplateFunctions) = - getBooleanOption("c++-template-inlining", /*Default=*/true); - - return *InlineTemplateFunctions; + return getBooleanOption(InlineTemplateFunctions, + "c++-template-inlining", + /*Default=*/true); } bool AnalyzerOptions::mayInlineObjCMethod() { - if (!ObjCInliningMode.hasValue()) - const_cast<llvm::Optional<bool> &>(ObjCInliningMode) = - getBooleanOption("objc-inlining", /*Default=*/true); - - return *ObjCInliningMode; + return getBooleanOption(ObjCInliningMode, + "objc-inlining", + /* Default = */ true); } bool AnalyzerOptions::shouldPruneNullReturnPaths() { - if (!PruneNullReturnPaths.hasValue()) - const_cast<llvm::Optional<bool> &>(PruneNullReturnPaths) = - getBooleanOption("suppress-null-return-paths", /*Default=*/true); - - return *PruneNullReturnPaths; + return getBooleanOption(PruneNullReturnPaths, + "suppress-null-return-paths", + /* Default = */ true); } int AnalyzerOptions::getOptionAsInteger(StringRef Name, int DefaultVal) { |