[cfe-commits] r164080 - in /cfe/trunk: lib/Sema/SemaObjCProperty.cpp test/SemaObjC/property-in-class-extension-1.m

Fariborz Jahanian fjahanian at apple.com
Mon Sep 17 16:57:35 PDT 2012


Author: fjahanian
Date: Mon Sep 17 18:57:35 2012
New Revision: 164080

URL: http://llvm.org/viewvc/llvm-project?rev=164080&view=rev
Log:
objective-C: don't warn about class extension property's 
missing 'assign' attribute as it is determined by its
overridden property in primary class. // rdar://12214070 

Modified:
    cfe/trunk/lib/Sema/SemaObjCProperty.cpp
    cfe/trunk/test/SemaObjC/property-in-class-extension-1.m

Modified: cfe/trunk/lib/Sema/SemaObjCProperty.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaObjCProperty.cpp?rev=164080&r1=164079&r2=164080&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaObjCProperty.cpp (original)
+++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp Mon Sep 17 18:57:35 2012
@@ -2159,7 +2159,9 @@
         // issue any warning.
         if (isAnyClassTy && getLangOpts().getGC() == LangOptions::NonGC)
           ;
-        else {
+        else if (propertyInPrimaryClass) {
+          // Don't issue warning on property with no life time in class 
+          // extension as it is inherited from property in primary class.
           // Skip this warning in gc-only mode.
           if (getLangOpts().getGC() != LangOptions::GCOnly)
             Diag(Loc, diag::warn_objc_property_no_assignment_attribute);

Modified: cfe/trunk/test/SemaObjC/property-in-class-extension-1.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/property-in-class-extension-1.m?rev=164080&r1=164079&r2=164080&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/property-in-class-extension-1.m (original)
+++ cfe/trunk/test/SemaObjC/property-in-class-extension-1.m Mon Sep 17 18:57:35 2012
@@ -35,17 +35,13 @@
 
 @property (nonatomic, copy) NSString* addingMemoryModel;
 @property (nonatomic, copy) NSString* matchingMemoryModel;
- at property () NSString* addingNoNewMemoryModel; // expected-warning {{no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed}} \
-                                               // expected-warning {{default property attribute 'assign' not appropriate for non-GC object}}
- at property () NSString* none; // expected-warning {{no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed}} \
-                                               // expected-warning {{default property attribute 'assign' not appropriate for non-GC object}}
+ at property () NSString* addingNoNewMemoryModel;
+ at property () NSString* none;
 @property (readwrite, retain) NSString* none1;
 
 @property (retain) NSString* changeMemoryModel; // expected-warning {{property attribute in class extension does not match the primary class}}
- at property () __weak id weak_prop; // expected-warning {{no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed}} \
-                                  // expected-warning {{default property attribute 'assign' not appropriate for non-GC object}}
- at property (readwrite) __weak id weak_prop1; // expected-warning {{no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed}}\
-					    // expected-warning {{default property attribute 'assign' not appropriate for non-GC object}}
+ at property () __weak id weak_prop;
+ at property (readwrite) __weak id weak_prop1;
 
 @property (assign, readwrite) NSString* assignProperty;
 @property (assign) NSString* readonlyProp;





More information about the cfe-commits mailing list