From f2be652fd796e83f109d1f2a074811a513569105 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 24 Aug 2011 00:39:51 +0000 Subject: [PATCH] Revert "[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change." This reverts commit d02b4af7bd6ca4a743c7074d64e205d718aa221d. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138420 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/StaticAnalyzer/Core/CFRefCount.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/StaticAnalyzer/Core/CFRefCount.cpp b/lib/StaticAnalyzer/Core/CFRefCount.cpp index 2d1b822b3e..ddae5d73a8 100644 --- a/lib/StaticAnalyzer/Core/CFRefCount.cpp +++ b/lib/StaticAnalyzer/Core/CFRefCount.cpp @@ -2963,6 +2963,9 @@ void RetainReleaseChecker::checkSummary(const RetainSummary &Summ, const CallOrObjCMessage &CallOrMsg, InstanceReceiver Receiver, CheckerContext &C) const { + // FIXME: This goes away when the RetainSummaryManager moves to the checker. + CFRefCount &TF = static_cast(C.getEngine().getTF()); + const ProgramState *state = C.getState(); // Evaluate the effect of the arguments. @@ -3010,13 +3013,10 @@ void RetainReleaseChecker::checkSummary(const RetainSummary &Summ, RetEffect RE = Summ.getRetEffect(); if (RE.getKind() == RetEffect::OwnedWhenTrackedReceiver) { - if (ReceiverIsTracked) { - // FIXME: This goes away if the RetainSummaryManager moves to the checker. - CFRefCount &TF = static_cast(C.getEngine().getTF()); - RE = TF.Summaries.getObjAllocRetEffect(); - } else { + if (ReceiverIsTracked) + RE = TF.Summaries.getObjAllocRetEffect(); + else RE = RetEffect::MakeNoRet(); - } } switch (RE.getKind()) { @@ -3399,12 +3399,17 @@ void RetainReleaseChecker::checkPreStmt(const ReturnStmt *S, if (!Pred) return; + ExprEngine &Eng = C.getEngine(); + // FIXME: This goes away once HandleAutoreleaseCount() and the + // RetainSummariesManager move to RetainReleaseChecker. + CFRefCount &TF = static_cast(Eng.getTF()); + // Update the autorelease counts. static SimpleProgramPointTag AutoreleaseTag("RetainReleaseChecker : Autorelease"); GenericNodeBuilderRefCount Bd(C.getNodeBuilder(), S, &AutoreleaseTag); - llvm::tie(Pred, state) = handleAutoreleaseCounts(state, Bd, Pred, - C.getEngine(), Sym, X); + llvm::tie(Pred, state) = handleAutoreleaseCounts(state, Bd, Pred, Eng, + Sym, X); // Did we cache out? if (!Pred) @@ -3418,9 +3423,6 @@ void RetainReleaseChecker::checkPreStmt(const ReturnStmt *S, // Consult the summary of the enclosing method. const Decl *CD = &Pred->getCodeDecl(); - // FIXME: This goes away once the RetainSummariesManager moves to the checker. - CFRefCount &TF = static_cast(C.getEngine().getTF()); - if (const ObjCMethodDecl *MD = dyn_cast(CD)) { // Unlike regular functions, /all/ ObjC methods are assumed to always // follow Cocoa retain-count conventions, not just those with special -- 2.40.0