[cfe-commits] r70224 - /cfe/trunk/lib/Sema/SemaDeclAttr.cpp

Ted Kremenek kremenek at apple.com
Mon Apr 27 11:41:19 PDT 2009


Author: kremenek
Date: Mon Apr 27 13:41:18 2009
New Revision: 70224

URL: http://llvm.org/viewvc/llvm-project?rev=70224&view=rev
Log:
Refactor HandleObjCOwnershipRetainAttr and HandleObjCOwnershipCFRetainAttr into
HandleObjCOwnershipParmAttr. No functionality change (hopefully).

Modified:
    cfe/trunk/lib/Sema/SemaDeclAttr.cpp

Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=70224&r1=70223&r2=70224&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Mon Apr 27 13:41:18 2009
@@ -1533,28 +1533,36 @@
   d->addAttr(::new (S.Context) ObjCOwnershipReturnsAttr());
 }
 
-static void HandleObjCOwnershipRetainAttr(Decl *d, const AttributeList &Attr,
-                                           Sema &S) {
+static void HandleObjCOwnershipParmAttr(Decl *d, const AttributeList &Attr,
+                                        Sema &S) {
   
   if (!isa<ParmVarDecl>(d)) {
-    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type) <<
-    "objc_ownership_retain" << 4 /* parameter */;
-    return;
-  }
-  
-  d->addAttr(::new (S.Context) ObjCOwnershipRetainAttr());
-}
+    const char *name;
+    
+    switch (Attr.getKind()) {
+      default:
+        assert(0 && "invalid ownership attribute");
+        return;
+      case AttributeList::AT_objc_ownership_retain:
+        name = "objc_ownership_retain"; break;
+      case AttributeList::AT_objc_ownership_cfretain:
+        name = "objc_ownership_cfretain"; break;
+    };
 
-static void HandleObjCOwnershipCFRetainAttr(Decl *d, const AttributeList &Attr,
-                                            Sema &S) {
-  
-  if (!isa<ParmVarDecl>(d)) {
-    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type) <<
-    "objc_ownership_cfretain" << 4 /* parameter */;
+    S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type) << name
+          << 4 /* parameter */;
     return;
   }
   
-  d->addAttr(::new (S.Context) ObjCOwnershipCFRetainAttr());
+  switch (Attr.getKind()) {
+    default:
+      assert(0 && "invalid ownership attribute");
+      return;
+    case AttributeList::AT_objc_ownership_retain:
+      d->addAttr(::new (S.Context) ObjCOwnershipRetainAttr());   return;
+    case AttributeList::AT_objc_ownership_cfretain:
+      d->addAttr(::new (S.Context) ObjCOwnershipCFRetainAttr()); return;
+  }
 }
 
 //===----------------------------------------------------------------------===//
@@ -1596,11 +1604,10 @@
 
   // Checker-specific.
   case AttributeList::AT_objc_ownership_retain:
-    HandleObjCOwnershipRetainAttr(D, Attr, S); break;
+  case AttributeList::AT_objc_ownership_cfretain:
+    HandleObjCOwnershipParmAttr(D, Attr, S); break;
   case AttributeList::AT_objc_ownership_returns:
     HandleObjCOwnershipReturnsAttr(D, Attr, S); break;
-  case AttributeList::AT_objc_ownership_cfretain:
-    HandleObjCOwnershipCFRetainAttr(D, Attr, S); break;
 
   case AttributeList::AT_packed:      HandlePackedAttr    (D, Attr, S); break;
   case AttributeList::AT_section:     HandleSectionAttr   (D, Attr, S); break;





More information about the cfe-commits mailing list