Merge from mainline (165734:167278).
[official-gcc/graphite-test-results.git] / gcc / testsuite / objc.dg / property / at-property-14.m
blobccf842b7fdf8e67f7298c691a6f856990fbaa270
1 /* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, November 2010.  */
2 /* { dg-do compile } */
4 #include <objc/objc.h>
6 @interface MyRootClass
8   Class isa;
11 /* Test the warnings on 'assign'.  */
12 @property id property_a;      /* { dg-warning "object property .property.a. has no .assign., .retain. or .copy. attribute" } */
13                               /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 12 } */
15 @property (readonly) id property_b; /* No 'assign' warning (assign semantics do not matter if the property is readonly).  */
16 @property id *property_c;           /* No 'assign' warning (the type is not an Objective-C object).  */
17 @property Class property_d;         /* No 'assign' warning (Classes are static objects so assign semantics do not matter for them).  */
18 @property MyRootClass *property_e;  /* { dg-warning "object property .property.e. has no .assign., .retain. or .copy. attribute" } */
19                                     /* { dg-message ".assign. can be unsafe for Objective-C objects" "" { target *-*-* } 18 } */
20 @end