[InstCombine] Preserve NSW flags for `lshr (mul nuw X, C1), C2 -> mul nuw nsw X,...
[llvm-project.git] / clang / test / SemaObjC / flexible-array-arc.m
blob1490329b183c86562c028e100cb19cbdf0d2456e
1 // 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
7 @interface RetainableArray {
8   id flexible[];
9 #ifndef NOARC
10   // expected-error@-2 {{ARC forbids flexible array members with retainable object type}}
11 #endif
13 @end
14 @implementation RetainableArray
15 @end
17 // Emit diagnostic only if have @implementation.
18 @interface RetainableArrayWithoutImpl {
19   id flexible[];
21 @end
23 // With ARC flexible array member objects can be only __unsafe_unretained
24 @interface UnsafeUnretainedArray {
25   __unsafe_unretained id flexible[];
27 @end
28 @implementation UnsafeUnretainedArray
29 @end
31 @interface NotObjCLifetimeTypeArray {
32   char flexible[];
34 @end
35 @implementation NotObjCLifetimeTypeArray
36 @end