[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / Rewriter / rewrite-modern-ivars-1.mm
blobdbd28d121ee0d4fb6c94b550dbaccc8e7c906166
1 // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2 // RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp
4 @interface NSCheapMutableString {
5 @private
6     struct S s0;
7     union {
8         char *fat;
9         unsigned char *thin;
10     } contents;
12     struct {
13         unsigned int isFat:1;
14         unsigned int freeWhenDone:1;
15         unsigned int refs:30;
16     } flags;
18     struct S {
19         int iS1;
20         double dS1;
21     } others;
23     union U {
24       int iU1;
25       double dU1;
26     } u_others;
28    enum {
29     One, Two
30    } E1;
32    enum e {
33     Yes = 1,
34     No = 0
35    } BoOl;
37    struct S s1;
39    enum e E2;
41     union {
42         char *fat;
43         unsigned char *thin;
44     } Last_contents;
46     struct {
47         unsigned int isFat:1;
48         unsigned int freeWhenDone:1;
49         unsigned int refs:30;
50     } Last_flags;
52 @end
54 @interface III {
55 @private
56     struct S s0;
58     union {
59         char *fat;
60         unsigned char *thin;
61     } contents;
63     struct {
64         unsigned int isFat:1;
65         unsigned int freeWhenDone:1;
66         unsigned int refs:30;
67     } flags;
69    enum {
70     One1 = 1000, Two1, Three1
71    } E1;
73    struct S s1;
75    enum e E2;
77     union {
78         char *fat;
79         unsigned char *thin;
80     } Last_contents;
82     struct {
83         unsigned int isFat:1;
84         unsigned int freeWhenDone:1;
85         unsigned int refs:30;
86     } Last_flags;
88 @end
90 enum OUTSIDE {
91   yes
94 @interface MoreEnumTests {
95 @private
96     enum INSIDE {
97         no
98     } others;
100     enum OUTSIDE meetoo;
102     enum {
103        one,
104        two
105     } eu;
107 @end
109 @interface I {
110     enum INSIDE I1;
111     enum OUTSIDE  I2;
112     enum ALSO_INSIDE {
113       maybe
114     } I3;
116    enum ALSO_INSIDE I4;
118     enum {
119        three,
120        four
121     } I5;
123 @end