// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -fobjc-nonfragile-abi -verify %s // rdar://8843524 struct A { id x; // expected-error {{ARC forbids Objective-C objects in structs or unions}} }; union u { id u; // expected-error {{ARC forbids Objective-C objects in structs or unions}} }; @interface I { struct A a; struct B { id y[10][20]; // expected-error {{ARC forbids Objective-C objects in structs or unions}} id z; } b; union u c; }; @end struct S { id __attribute__((objc_ownership(none))) i; void * vp; int i1; }; // rdar://9046528 @class NSError; __autoreleasing id X; // expected-error {{global variables cannot have __autoreleasing ownership}} __autoreleasing NSError *E; // expected-error {{global variables cannot have __autoreleasing ownership}} extern id __autoreleasing X1; // expected-error {{global variables cannot have __autoreleasing ownership}} void func() { id X; static id __autoreleasing X1; // expected-error {{global variables cannot have __autoreleasing ownership}} extern id __autoreleasing E; // expected-error {{global variables cannot have __autoreleasing ownership}} } // rdar://9157348 @interface J @property (retain) id newFoo; // expected-note {{property declared here}} @property (strong) id copyBar; // expected-note {{property declared here}} @property (copy) id allocBaz; // expected-note {{property declared here}} @property (copy, nonatomic) id new; @end @implementation J @synthesize newFoo; // expected-error {{property's synthesized getter follows Cocoa naming convention for returning}} @synthesize copyBar; // expected-error {{property's synthesized getter follows Cocoa naming convention for returning}} @synthesize allocBaz; // expected-error {{property's synthesized getter follows Cocoa naming convention for returning}} @synthesize new; - new {return 0; }; @end