aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2012-09-10 22:56:41 +0000
committerAnna Zaks <ganna@apple.com>2012-09-10 22:56:41 +0000
commit57330eed3fbe530cb05996e4a346cc5fc217c0d9 (patch)
tree2559abcdffadb7bce36fd6470d26df923f145ef7 /lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
parent8a198a078e22665deb0a442eb6ba187a230f733a (diff)
[analyzer] Add an option to enable/disable objc inlining.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163562 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Core/AnalyzerOptions.cpp')
-rw-r--r--lib/StaticAnalyzer/Core/AnalyzerOptions.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
index 5cbbb8d462..9e029c7e29 100644
--- a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
+++ b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
@@ -82,6 +82,14 @@ bool AnalyzerOptions::mayInlineTemplateFunctions() const {
return *InlineTemplateFunctions;
}
+bool AnalyzerOptions::mayInlineObjCMethod() const {
+ if (!ObjCInliningMode.hasValue())
+ const_cast<llvm::Optional<bool> &>(ObjCInliningMode) =
+ getBooleanOption("objc-inlining", /*Default=*/true);
+
+ return *ObjCInliningMode;
+}
+
int AnalyzerOptions::getOptionAsInteger(StringRef Name, int DefaultVal) const {
std::string OptStr = Config.lookup(Name);
if (OptStr.empty())
@@ -97,9 +105,8 @@ int AnalyzerOptions::getOptionAsInteger(StringRef Name, int DefaultVal) const {
unsigned AnalyzerOptions::getAlwaysInlineSize() const {
if (!AlwaysInlineSize.hasValue()) {
unsigned DefaultSize = 3;
- Optional<unsigned> &MutableOption =
- const_cast<Optional<unsigned> &>(AlwaysInlineSize);
- MutableOption = getOptionAsInteger("ipa-always-inline-size", DefaultSize);
+ const_cast<Optional<unsigned> &>(AlwaysInlineSize) =
+ getOptionAsInteger("ipa-always-inline-size", DefaultSize);
}
return AlwaysInlineSize.getValue();