// RUN: %clang_cc1 -fobjc-runtime=macosx-10.8 -fsyntax-only -verify %s
__attribute__((objc_root_class))@interfaceRoot@end// These should not get diagnosed immediately.
@interfaceA:Root{
__weak id x;}@property __weak id y;@end// Diagnostic goes on the ivar if it's explicit.
@interfaceB:Root{
__weak id x;// expected-error {{cannot create __weak reference in file using manual reference counting}}
}@property __weak id x;@end@implementationB@synthesize x;@end// Otherwise, it goes with the @synthesize.
@interfaceC:Root@property __weak id x;// expected-note {{property declared here}}
@end@implementationC@synthesize x;// expected-error {{cannot synthesize weak property in file using manual reference counting}}
@end@interfaceD:Root@property __weak id x;// expected-note {{property declared here}}
@end@implementationD// expected-error {{cannot synthesize weak property in file using manual reference counting}}
@end@interfaceE:Root{@public
__weak id x;// expected-note 2 {{declaration uses __weak, but ARC is disabled}}
}@endvoidtestE(E *e){id x = e->x;// expected-error {{'x' is unavailable}}
e->x = x;// expected-error {{'x' is unavailable}}
}@interfaceF:Root@property(weak)id x;@endvoidtestF(F *f){id x = f.x;}