diff options
| author | Anna Zaks <ganna@apple.com> | 2013-01-24 23:15:30 +0000 |
|---|---|---|
| committer | Anna Zaks <ganna@apple.com> | 2013-01-24 23:15:30 +0000 |
| commit | 6bab4ef4e83ffd7f42e00b5ead2bcfead78b51b4 (patch) | |
| tree | f45a8728f0eb3fb52dcd9f82c18869eff9ae1a0a /clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | |
| parent | c7f5e69e5024f6d4a34a4b77c018aee82354cc44 (diff) | |
| download | bcm5719-llvm-6bab4ef4e83ffd7f42e00b5ead2bcfead78b51b4.tar.gz bcm5719-llvm-6bab4ef4e83ffd7f42e00b5ead2bcfead78b51b4.zip | |
[analyzer] Replace "-analyzer-ipa" with "-analyzer-config ipa".
The idea is to eventually place all analyzer options under
"analyzer-config". In addition, this lays the ground for introduction of
a high-level analyzer mode option, which will influence the
default setting for IPAMode.
llvm-svn: 173385
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp index a336f04c8f7..107b739c170 100644 --- a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp +++ b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp @@ -20,9 +20,31 @@ using namespace clang; using namespace llvm; +IPAKind AnalyzerOptions::getIPAMode() { + if (IPAMode == IPAK_NotSet) { + + // Lookup the ipa configuration option, use the default from User Mode. + StringRef ModeStr(Config.GetOrCreateValue("ipa", + "dynamic-bifurcate").getValue()); + IPAKind IPAConfig = llvm::StringSwitch<IPAKind>(ModeStr) + .Case("none", IPAK_None) + .Case("basic-inlining", IPAK_BasicInlining) + .Case("inlining", IPAK_Inlining) + .Case("dynamic", IPAK_DynamicDispatch) + .Case("dynamic-bifurcate", IPAK_DynamicDispatchBifurcate) + .Default(IPAK_NotSet); + assert(IPAConfig != IPAK_NotSet && "IPA Mode is not set or invalid."); + + // Set the member variable. + IPAMode = IPAConfig; + } + + return IPAMode; +} + bool AnalyzerOptions::mayInlineCXXMemberFunction(CXXInlineableMemberKind K) { - if (getIPAMode() < Inlining) + if (getIPAMode() < IPAK_Inlining) return false; if (!CXXMemberInliningMode) { |

