diff options
Diffstat (limited to 'gcc/testsuite/obj-c++.dg/property/dynamic-2.mm')
-rw-r--r-- | gcc/testsuite/obj-c++.dg/property/dynamic-2.mm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm b/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm new file mode 100644 index 000000000..49004eff4 --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/property/dynamic-2.mm @@ -0,0 +1,45 @@ +/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, October 2010. */ +/* { dg-do compile } */ + +#include <objc/objc.h> + +@interface MyRootClass +{ + Class isa; +} +@end + +@implementation MyRootClass +@end + +@dynamic isa; /* { dg-error "misplaced .@dynamic. Objective-C.. construct" } */ + +@interface Test : MyRootClass +{ + int v1; +} +@end +@implementation Test +@end + + +@interface Test (Category) +@property int v1; +@end +@implementation Test (Category) +@dynamic v1; +@end + + +@interface AnotherTest : MyRootClass +{ +} +@property int one; +@end + +@implementation AnotherTest +@dynamic one; +@dynamic one; /* { dg-error "property .one. already specified in .@dynamic." } */ + /* { dg-message "originally specified here" "" { target *-*-* } 41 } */ +@dynamic three; /* { dg-error "no declaration of property .three. found in the interface" } */ +@end |