[cfe-commits] r70870 - /cfe/trunk/lib/Analysis/CFRefCount.cpp
Ted Kremenek
kremenek at apple.com
Mon May 4 08:40:58 PDT 2009
Author: kremenek
Date: Mon May 4 10:40:58 2009
New Revision: 70870
URL: http://llvm.org/viewvc/llvm-project?rev=70870&view=rev
Log:
retain checker: Pull out logic for parameter annotations into a
separate method.
Modified:
cfe/trunk/lib/Analysis/CFRefCount.cpp
Modified: cfe/trunk/lib/Analysis/CFRefCount.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFRefCount.cpp?rev=70870&r1=70869&r2=70870&view=diff
==============================================================================
--- cfe/trunk/lib/Analysis/CFRefCount.cpp (original)
+++ cfe/trunk/lib/Analysis/CFRefCount.cpp Mon May 4 10:40:58 2009
@@ -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>())
More information about the cfe-commits
mailing list