[cfe-commits] r159293 - in /cfe/trunk: lib/Sema/SemaObjCProperty.cpp test/SemaObjC/arc-retain-block-property.m test/SemaObjC/warn-retain-block-property.m

Fariborz Jahanian fjahanian at apple.com
Wed Jun 27 13:52:46 PDT 2012


Author: fjahanian
Date: Wed Jun 27 15:52:46 2012
New Revision: 159293

URL: http://llvm.org/viewvc/llvm-project?rev=159293&view=rev
Log:
objective-c mrc: Issue warning for mrc, as is done for arc, when
property retains a block object as it could be on 
the stack. // rdar://11761511

Added:
    cfe/trunk/test/SemaObjC/warn-retain-block-property.m
      - copied, changed from r159282, cfe/trunk/test/SemaObjC/arc-retain-block-property.m
Removed:
    cfe/trunk/test/SemaObjC/arc-retain-block-property.m
Modified:
    cfe/trunk/lib/Sema/SemaObjCProperty.cpp

Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=159293&r1=159292&r2=159293&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original)
+++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Wed Jun 27 15:52:46 2012
@@ -2143,8 +2143,7 @@
       && getLangOpts().getGC() == LangOptions::GCOnly
       && PropertyTy->isBlockPointerType())
     Diag(Loc, diag::warn_objc_property_copy_missing_on_block);
-  else if (getLangOpts().ObjCAutoRefCount &&
-           (Attributes & ObjCDeclSpec::DQ_PR_retain) &&
+  else if ((Attributes & ObjCDeclSpec::DQ_PR_retain) &&
            !(Attributes & ObjCDeclSpec::DQ_PR_readonly) &&
            !(Attributes & ObjCDeclSpec::DQ_PR_strong) &&
            PropertyTy->isBlockPointerType())

Removed: cfe/trunk/test/SemaObjC/arc-retain-block-property.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/arc-retain-block-property.m?rev=159292&view=auto
==============================================================================
--- cfe/trunk/test/SemaObjC/arc-retain-block-property.m (original)
+++ cfe/trunk/test/SemaObjC/arc-retain-block-property.m (removed)
@@ -1,30 +0,0 @@
-// RUN: %clang_cc1 -fsyntax-only -fblocks -fobjc-arc -verify -Wno-objc-root-class %s
-// rdar://9829425
-
-extern void doSomething();
-
- at interface Test
-{
- at public
-  void (^aBlock)(void);
-}
- at property (retain) void (^aBlock)(void); // expected-warning {{retain'ed block property does not copy the block - use copy attribute instead}}
- at property (weak, retain) void (^aBlockW)(void); // expected-error {{property attributes 'retain' and 'weak' are mutually exclusive}} 
- at property (strong, retain) void (^aBlockS)(void); // OK
- at property (readonly, retain) void (^aBlockR)(void); // OK
- at property (copy, retain) void (^aBlockC)(void); // expected-error {{property attributes 'copy' and 'retain' are mutually exclusive}}
- at property (assign, retain) void (^aBlockA)(void); // expected-error {{property attributes 'assign' and 'retain' are mutually exclusive}}
- at end
-
- at implementation Test
- at synthesize aBlock;
- at dynamic aBlockW, aBlockS, aBlockR, aBlockC, aBlockA;
- at end
-
-int main() {
-  Test *t;
-  t.aBlock = ^{ doSomething(); };
-  t.aBlockW = ^{ doSomething(); };
-  t.aBlockS = ^{ doSomething(); };
-}
-

Copied: cfe/trunk/test/SemaObjC/warn-retain-block-property.m (from r159282, cfe/trunk/test/SemaObjC/arc-retain-block-property.m)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/warn-retain-block-property.m?p2=cfe/trunk/test/SemaObjC/warn-retain-block-property.m&p1=cfe/trunk/test/SemaObjC/arc-retain-block-property.m&r1=159282&r2=159293&rev=159293&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/arc-retain-block-property.m (original)
+++ cfe/trunk/test/SemaObjC/warn-retain-block-property.m Wed Jun 27 15:52:46 2012
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -fsyntax-only -fblocks -fobjc-arc -verify -Wno-objc-root-class %s
 // rdar://9829425
+// RUN: %clang_cc1 -fsyntax-only -fblocks -verify -Wno-objc-root-class %s
+// rdar://11761511
 
 extern void doSomething();
 





More information about the cfe-commits mailing list