37 lines
820 B
Objective-C
37 lines
820 B
Objective-C
// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -verify -Wno-objc-root-class %s
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -DNOARC %s
|
|
#ifdef NOARC
|
|
// expected-no-diagnostics
|
|
#endif
|
|
|
|
@interface RetainableArray {
|
|
id flexible[];
|
|
#ifndef NOARC
|
|
// expected-error@-2 {{ARC forbids flexible array members with retainable object type}}
|
|
#endif
|
|
}
|
|
@end
|
|
@implementation RetainableArray
|
|
@end
|
|
|
|
// Emit diagnostic only if have @implementation.
|
|
@interface RetainableArrayWithoutImpl {
|
|
id flexible[];
|
|
}
|
|
@end
|
|
|
|
// With ARC flexible array member objects can be only __unsafe_unretained
|
|
@interface UnsafeUnretainedArray {
|
|
__unsafe_unretained id flexible[];
|
|
}
|
|
@end
|
|
@implementation UnsafeUnretainedArray
|
|
@end
|
|
|
|
@interface NotObjCLifetimeTypeArray {
|
|
char flexible[];
|
|
}
|
|
@end
|
|
@implementation NotObjCLifetimeTypeArray
|
|
@end
|