[cfe-commits] r141915 - in /cfe/trunk: lib/Sema/SemaObjCProperty.cpp test/SemaObjC/arc-property-lifetime.m

Fariborz Jahanian fjahanian at apple.com
Thu Oct 13 16:45:45 PDT 2011


Author: fjahanian
Date: Thu Oct 13 18:45:45 2011
New Revision: 141915

URL: http://llvm.org/viewvc/llvm-project?rev=141915&view=rev
Log:
objc-arc: 'Class' property is implicitly __unsafe_unretained.
// rdar://10239594

Modified:
    cfe/trunk/lib/Sema/SemaObjCProperty.cpp
    cfe/trunk/test/SemaObjC/arc-property-lifetime.m

Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=141915&r1=141914&r2=141915&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original)
+++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Thu Oct 13 18:45:45 2011
@@ -39,7 +39,7 @@
   if (attrs & (ObjCPropertyDecl::OBJC_PR_retain |
                ObjCPropertyDecl::OBJC_PR_strong |
                ObjCPropertyDecl::OBJC_PR_copy)) {
-    return Qualifiers::OCL_Strong;
+    return type->getObjCARCImplicitLifetime();
   } else if (attrs & ObjCPropertyDecl::OBJC_PR_weak) {
     return Qualifiers::OCL_Weak;
   } else if (attrs & ObjCPropertyDecl::OBJC_PR_unsafe_unretained) {

Modified: cfe/trunk/test/SemaObjC/arc-property-lifetime.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/arc-property-lifetime.m?rev=141915&r1=141914&r2=141915&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/arc-property-lifetime.m (original)
+++ cfe/trunk/test/SemaObjC/arc-property-lifetime.m Thu Oct 13 18:45:45 2011
@@ -110,3 +110,18 @@
 @synthesize isAutosaving = _isAutosaving;
 @end
 
+// rdar://10239594
+// Test for 'Class' properties being unretained.
+ at interface MyClass {
+ at private
+    Class _controllerClass;
+    id _controllerId;
+}
+ at property (copy) Class controllerClass;
+ at property (copy) id controllerId;
+ at end
+
+ at implementation MyClass
+ at synthesize controllerClass = _controllerClass;
+ at synthesize controllerId = _controllerId;
+ at end





More information about the cfe-commits mailing list