forked from OSchip/llvm-project
37 lines
820 B
Mathematica
37 lines
820 B
Mathematica
|
// 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
|