1/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, December 2010. */ 2/* { dg-do compile } */ 3 4/* Test errors when extending a property in a class extension. */ 5 6#include <objc/objc.h> 7#include <objc/runtime.h> 8 9@interface MyRootClass 10{ 11 Class isa; 12} 13@property (readonly, retain) id property1; /* { dg-message "originally specified here" } */ 14@property (readonly) int property2; /* { dg-message "originally specified here" } */ 15@property (readonly, getter=y) int property3; /* { dg-message "originally specified here" } */ 16@property (readonly) int property4; /* Ok */ 17@property (readonly) int property5; /* { dg-message "originally specified here" } */ 18@end 19 20@interface MyRootClass () 21@property (readwrite, copy) id property1; /* { dg-warning "assign semantics attributes of property .property1. conflict with previous declaration" } */ 22@property (readwrite, nonatomic) int property2; /* { dg-warning ".nonatomic. attribute of property .property2. conflicts with previous declaration" } */ 23@property (readwrite, getter=x) int property3; /* { dg-warning ".getter. attribute of property .property3. conflicts with previous declaration" } */ 24@property (readwrite) int property4; /* Ok */ 25@property (readwrite) float property5; /* { dg-warning "type of property .property5. conflicts with previous declaration" } */ 26@end 27 28 29 30