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 |
3 | |
4 | @interface NSCheapMutableString { |
5 | @private |
6 | struct S s0; |
7 | union { |
8 | char *fat; |
9 | unsigned char *thin; |
10 | } contents; |
11 | |
12 | struct { |
13 | unsigned int isFat:1; |
14 | unsigned int freeWhenDone:1; |
15 | unsigned int refs:30; |
16 | } flags; |
17 | |
18 | struct S { |
19 | int iS1; |
20 | double dS1; |
21 | } others; |
22 | |
23 | union U { |
24 | int iU1; |
25 | double dU1; |
26 | } u_others; |
27 | |
28 | enum { |
29 | One, Two |
30 | } E1; |
31 | |
32 | enum e { |
33 | Yes = 1, |
34 | No = 0 |
35 | } BoOl; |
36 | |
37 | struct S s1; |
38 | |
39 | enum e E2; |
40 | |
41 | union { |
42 | char *fat; |
43 | unsigned char *thin; |
44 | } Last_contents; |
45 | |
46 | struct { |
47 | unsigned int isFat:1; |
48 | unsigned int freeWhenDone:1; |
49 | unsigned int refs:30; |
50 | } Last_flags; |
51 | } |
52 | @end |
53 | |
54 | @interface III { |
55 | @private |
56 | struct S s0; |
57 | |
58 | union { |
59 | char *fat; |
60 | unsigned char *thin; |
61 | } contents; |
62 | |
63 | struct { |
64 | unsigned int isFat:1; |
65 | unsigned int freeWhenDone:1; |
66 | unsigned int refs:30; |
67 | } flags; |
68 | |
69 | enum { |
70 | One1 = 1000, Two1, Three1 |
71 | } E1; |
72 | |
73 | struct S s1; |
74 | |
75 | enum e E2; |
76 | |
77 | union { |
78 | char *fat; |
79 | unsigned char *thin; |
80 | } Last_contents; |
81 | |
82 | struct { |
83 | unsigned int isFat:1; |
84 | unsigned int freeWhenDone:1; |
85 | unsigned int refs:30; |
86 | } Last_flags; |
87 | } |
88 | @end |
89 | |
90 | enum OUTSIDE { |
91 | yes |
92 | }; |
93 | |
94 | @interface MoreEnumTests { |
95 | @private |
96 | enum INSIDE { |
97 | no |
98 | } others; |
99 | |
100 | enum OUTSIDE meetoo; |
101 | |
102 | enum { |
103 | one, |
104 | two |
105 | } eu; |
106 | } |
107 | @end |
108 | |
109 | @interface I { |
110 | enum INSIDE I1; |
111 | enum OUTSIDE I2; |
112 | enum ALSO_INSIDE { |
113 | maybe |
114 | } I3; |
115 | |
116 | enum ALSO_INSIDE I4; |
117 | |
118 | enum { |
119 | three, |
120 | four |
121 | } I5; |
122 | } |
123 | @end |
124 | |
125 | |