summaryrefslogtreecommitdiffstats
path: root/test/SemaObjC/nsobject-attribute.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/nsobject-attribute.m')
-rw-r--r--test/SemaObjC/nsobject-attribute.m36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/SemaObjC/nsobject-attribute.m b/test/SemaObjC/nsobject-attribute.m
new file mode 100644
index 0000000..3544cb1
--- /dev/null
+++ b/test/SemaObjC/nsobject-attribute.m
@@ -0,0 +1,36 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+typedef struct CGColor * __attribute__ ((NSObject)) CGColorRef;
+static int count;
+static CGColorRef tmp = 0;
+
+typedef struct S1 __attribute__ ((NSObject)) CGColorRef1; // expected-error {{__attribute ((NSObject)) is for pointer types only}}
+typedef void * __attribute__ ((NSObject)) CGColorRef2; // expected-error {{__attribute ((NSObject)) is for pointer types only}}
+
+@interface HandTested {
+@public
+ CGColorRef x;
+}
+@property(copy) CGColorRef x;
+@end
+
+void setProperty(id self, id value) {
+ ((HandTested *)self)->x = value;
+}
+
+id getProperty(id self) {
+ return (id)((HandTested *)self)->x;
+}
+
+@implementation HandTested
+@synthesize x=x;
+@end
+
+int main(char *argc, char *argv[]) {
+ HandTested *to;
+ to.x = tmp; // setter
+ if (tmp != to.x)
+ to.x = tmp;
+ return 0;
+}
+
OpenPOWER on IntegriCloud