1// RUN: %clang_cc1 -fsyntax-only -verify %s 2 3typedef struct CGColor * __attribute__ ((NSObject)) CGColorRef; 4static int count; 5static CGColorRef tmp = 0; 6 7typedef struct S1 __attribute__ ((NSObject)) CGColorRef1; // expected-error {{__attribute ((NSObject)) is for pointer types only}} 8typedef void * __attribute__ ((NSObject)) CGColorRef2; // expected-error {{__attribute ((NSObject)) is for pointer types only}} 9 10 11@interface HandTested { 12@public 13 CGColorRef x; 14} 15 16@property(copy) CGColorRef x; 17// rdar: // 7809460 18typedef struct CGColor *CGColorRefNoNSObject; 19@property (nonatomic, retain) __attribute__((NSObject)) CGColorRefNoNSObject color; 20@end 21 22void setProperty(id self, id value) { 23 ((HandTested *)self)->x = value; 24} 25 26id getProperty(id self) { 27 return (id)((HandTested *)self)->x; 28} 29 30@implementation HandTested 31@synthesize x=x; 32@dynamic color; 33@end 34 35int main(int argc, char *argv[]) { 36 HandTested *to; 37 to.x = tmp; // setter 38 if (tmp != to.x) 39 to.x = tmp; 40 return 0; 41} 42 43