blob: 1490329b183c86562c028e100cb19cbdf0d2456e [file] [log] [blame]
Volodymyr Sapsai30680e92017-10-23 22:01:41 +00001// RUN: %clang_cc1 -fsyntax-only -fobjc-arc -verify -Wno-objc-root-class %s
2// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -DNOARC %s
3#ifdef NOARC
4// expected-no-diagnostics
5#endif
6
7@interface RetainableArray {
8 id flexible[];
9#ifndef NOARC
10 // expected-error@-2 {{ARC forbids flexible array members with retainable object type}}
11#endif
12}
13@end
14@implementation RetainableArray
15@end
16
17// Emit diagnostic only if have @implementation.
18@interface RetainableArrayWithoutImpl {
19 id flexible[];
20}
21@end
22
23// With ARC flexible array member objects can be only __unsafe_unretained
24@interface UnsafeUnretainedArray {
25 __unsafe_unretained id flexible[];
26}
27@end
28@implementation UnsafeUnretainedArray
29@end
30
31@interface NotObjCLifetimeTypeArray {
32 char flexible[];
33}
34@end
35@implementation NotObjCLifetimeTypeArray
36@end