summaryrefslogtreecommitdiff
path: root/gcc/testsuite/objc.dg/property/property-1.m
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/objc.dg/property/property-1.m')
-rw-r--r--gcc/testsuite/objc.dg/property/property-1.m32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/property/property-1.m b/gcc/testsuite/objc.dg/property/property-1.m
new file mode 100644
index 000000000..147f007b9
--- /dev/null
+++ b/gcc/testsuite/objc.dg/property/property-1.m
@@ -0,0 +1,32 @@
+/* This program tests use of property provided setter/getter functions. */
+/* { dg-options "-std=c99" } */
+/* { dg-do run } */
+/* { dg-additional-sources "../../objc-obj-c++-shared/Object1.m" } */
+/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+
+#import "../../objc-obj-c++-shared/Object1.h"
+
+@interface Bar : Object
+{
+ int iVar;
+}
+@property (setter=MySetter:) int FooBar;
+@end
+
+@implementation Bar
+@synthesize FooBar=iVar;
+
+- (void) MySetter : (int) value { iVar = value; }
+
+@end
+
+int main(int argc, char *argv[]) {
+ Bar *f = [Bar new];
+ f.FooBar = 1;
+
+ f.FooBar += 3;
+
+ f.FooBar -= 4;
+ return f.FooBar;
+}
+