]> granicus.if.org Git - clang/commitdiff
[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to...
authorJordy Rose <jediknil@belkadan.com>
Tue, 23 Aug 2011 21:06:32 +0000 (21:06 +0000)
committerJordy Rose <jediknil@belkadan.com>
Tue, 23 Aug 2011 21:06:32 +0000 (21:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138382 91177308-0d34-0410-b5e6-96231b3b80d8

lib/StaticAnalyzer/Core/CFRefCount.cpp

index ddae5d73a8858a49eb43a5bd7313613456de94ff..2d1b822b3ec22372fe593ef9b7aa9d811f2e786d 100644 (file)
@@ -2963,9 +2963,6 @@ 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<CFRefCount&>(C.getEngine().getTF());
-
   const ProgramState *state = C.getState();
 
   // Evaluate the effect of the arguments.
@@ -3013,10 +3010,13 @@ void RetainReleaseChecker::checkSummary(const RetainSummary &Summ,
   RetEffect RE = Summ.getRetEffect();
 
   if (RE.getKind() == RetEffect::OwnedWhenTrackedReceiver) {
-    if (ReceiverIsTracked)
-      RE = TF.Summaries.getObjAllocRetEffect();
-    else
+    if (ReceiverIsTracked) {
+      // FIXME: This goes away if the RetainSummaryManager moves to the checker.
+      CFRefCount &TF = static_cast<CFRefCount&>(C.getEngine().getTF());
+      RE = TF.Summaries.getObjAllocRetEffect();      
+    } else {
       RE = RetEffect::MakeNoRet();
+    }
   }
 
   switch (RE.getKind()) {
@@ -3399,17 +3399,12 @@ 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<CFRefCount&>(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, Eng,
-                                                   Sym, X);
+  llvm::tie(Pred, state) = handleAutoreleaseCounts(state, Bd, Pred,
+                                                   C.getEngine(), Sym, X);
 
   // Did we cache out?
   if (!Pred)
@@ -3423,6 +3418,9 @@ 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<CFRefCount&>(C.getEngine().getTF());
+
   if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(CD)) {
     // Unlike regular functions, /all/ ObjC methods are assumed to always
     // follow Cocoa retain-count conventions, not just those with special