[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