retain checker: Pull out logic for parameter annotations into a
separate method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70870 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index 047d9f5..59d4845 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -779,6 +779,9 @@
   RetainSummary* getCommonMethodSummary(const ObjCMethodDecl* MD,
                                         Selector S, QualType RetTy);
 
+  void updateSummaryArgEffFromAnnotations(RetainSummary &Summ, unsigned i,
+                                          const ParmVarDecl *PD);
+
   void updateSummaryFromAnnotations(RetainSummary &Summ,
                                     const ObjCMethodDecl *MD);
   
@@ -1092,6 +1095,22 @@
 
 
 void
+RetainSummaryManager::updateSummaryArgEffFromAnnotations(RetainSummary &Summ,
+                                                         unsigned i,
+                                                         const ParmVarDecl *PD){
+  if (PD->getAttr<ObjCOwnershipRetainAttr>())
+    Summ.setArgEffect(AF, i, IncRefMsg);
+  else if (PD->getAttr<ObjCOwnershipCFRetainAttr>())
+    Summ.setArgEffect(AF, i, IncRef);
+  else if (PD->getAttr<ObjCOwnershipReleaseAttr>())
+    Summ.setArgEffect(AF, i, DecRefMsg);
+  else if (PD->getAttr<ObjCOwnershipCFReleaseAttr>())
+    Summ.setArgEffect(AF, i, DecRef);
+  else if (PD->getAttr<ObjCOwnershipMakeCollectableAttr>())
+    Summ.setArgEffect(AF, i, MakeCollectable);  
+}
+
+void
 RetainSummaryManager::updateSummaryFromAnnotations(RetainSummary &Summ,
                                                    const ObjCMethodDecl *MD) {
   if (!MD)
@@ -1109,18 +1128,8 @@
   // Determine if there are any arguments with a specific ArgEffect.
   unsigned i = 0;
   for (ObjCMethodDecl::param_iterator I = MD->param_begin(),
-       E = MD->param_end(); I != E; ++I, ++i) {
-    if ((*I)->getAttr<ObjCOwnershipRetainAttr>())
-      Summ.setArgEffect(AF, i, IncRefMsg);
-    else if ((*I)->getAttr<ObjCOwnershipCFRetainAttr>())
-      Summ.setArgEffect(AF, i, IncRef);
-    else if ((*I)->getAttr<ObjCOwnershipReleaseAttr>())
-      Summ.setArgEffect(AF, i, DecRefMsg);
-    else if ((*I)->getAttr<ObjCOwnershipCFReleaseAttr>())
-      Summ.setArgEffect(AF, i, DecRef);
-    else if ((*I)->getAttr<ObjCOwnershipMakeCollectableAttr>())
-      Summ.setArgEffect(AF, i, MakeCollectable);
-  }
+       E = MD->param_end(); I != E; ++I, ++i)
+    updateSummaryArgEffFromAnnotations(Summ, i, *I);
   
   // Determine any effects on the receiver.
   if (MD->getAttr<ObjCOwnershipRetainAttr>())