diff options
author | Anna Zaks <ganna@apple.com> | 2013-01-24 23:15:25 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2013-01-24 23:15:25 +0000 |
commit | 73f0563009a6715a5d3d41f664f5bfab5096d51f (patch) | |
tree | 5b904682c40adea95654c34db5e7cd29fac4e8d9 | |
parent | 33e9500784a6b8dc7f01ae5c85ebf0883fbc6662 (diff) |
[analyzer] refactor: access IPAMode through the accessor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173384 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/StaticAnalyzer/Core/AnalyzerOptions.h | 4 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | 2 | ||||
-rw-r--r-- | lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp | 11 |
3 files changed, 12 insertions, 5 deletions
diff --git a/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h b/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h index 24f33bcda1..25b2f71386 100644 --- a/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h +++ b/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h @@ -210,6 +210,10 @@ private: int getOptionAsInteger(StringRef Name, int DefaultVal); public: + AnalysisIPAMode getIPAMode() const { + return IPAMode; + } + /// Returns the option controlling which C++ member functions will be /// considered for inlining. /// diff --git a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp index 99f6c2e300..a336f04c8f 100644 --- a/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp +++ b/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp @@ -22,7 +22,7 @@ using namespace llvm; bool AnalyzerOptions::mayInlineCXXMemberFunction(CXXInlineableMemberKind K) { - if (IPAMode < Inlining) + if (getIPAMode() < Inlining) return false; if (!CXXMemberInliningMode) { diff --git a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp index af93baa0a2..6e7701475e 100644 --- a/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp @@ -558,8 +558,9 @@ bool ExprEngine::inlineCall(const CallEvent &Call, const Decl *D, case CE_ObjCMessage: if (!Opts.mayInlineObjCMethod()) return false; - if (!(getAnalysisManager().options.IPAMode == DynamicDispatch || - getAnalysisManager().options.IPAMode == DynamicDispatchBifurcate)) + AnalyzerOptions &Options = getAnalysisManager().options; + if (!(Options.getIPAMode() == DynamicDispatch || + Options.getIPAMode() == DynamicDispatchBifurcate)) return false; break; } @@ -737,14 +738,16 @@ void ExprEngine::defaultEvalCall(NodeBuilder &Bldr, ExplodedNode *Pred, const Decl *D = RD.getDecl(); if (D) { if (RD.mayHaveOtherDefinitions()) { + AnalyzerOptions &Options = getAnalysisManager().options; + // Explore with and without inlining the call. - if (getAnalysisManager().options.IPAMode == DynamicDispatchBifurcate) { + if (Options.getIPAMode() == DynamicDispatchBifurcate) { BifurcateCall(RD.getDispatchRegion(), *Call, D, Bldr, Pred); return; } // Don't inline if we're not in any dynamic dispatch mode. - if (getAnalysisManager().options.IPAMode != DynamicDispatch) { + if (Options.getIPAMode() != DynamicDispatch) { conservativeEvalCall(*Call, Bldr, Pred, State); return; } |