• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: rm -rf %t
2// RUN: %clang_cc1 -objcmt-migrate-ns-macros -mt-migrate-directory %t %s -x objective-c -fobjc-runtime-has-weak -fobjc-arc -triple x86_64-apple-darwin11
3// RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result
4// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result
5
6typedef signed char int8_t;
7typedef short int16_t;
8typedef int int32_t;
9typedef long NSInteger;
10typedef long long int64_t;
11
12typedef unsigned char uint8_t;
13typedef unsigned short uint16_t;
14typedef unsigned int uint32_t;
15typedef unsigned long NSUInteger;
16typedef unsigned long long uint64_t;
17
18#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
19#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
20#define DEPRECATED  __attribute__((deprecated))
21
22#ifndef NS_ENUM
23#import <Foundation/Foundation.h>
24#endif
25typedef NS_ENUM(NSInteger, wibble) {
26  blah,
27  blarg
28};
29
30typedef NS_ENUM(NSUInteger, UITableViewCellStyle) {
31    UIViewAutoresizingNone                 = 0,
32    UIViewAutoresizingFlexibleLeftMargin,
33    UIViewAutoresizingFlexibleWidth,
34    UIViewAutoresizingFlexibleRightMargin,
35    UIViewAutoresizingFlexibleTopMargin,
36    UIViewAutoresizingFlexibleHeight,
37    UIViewAutoresizingFlexibleBottomMargin
38};
39
40typedef NS_ENUM(unsigned int, UIViewAnimationTransition) {
41    UIViewAnimationTransitionNone,
42    UIViewAnimationTransitionFlipFromLeft,
43    UIViewAnimationTransitionFlipFromRight,
44    UIViewAnimationTransitionCurlUp,
45    UIViewAnimationTransitionCurlDown,
46};
47
48typedef NS_OPTIONS(unsigned int, UITableView) {
49    UIViewOne   = 0,
50    UIViewTwo   = 1 << 0,
51    UIViewThree = 1 << 1,
52    UIViewFour  = 1 << 2,
53    UIViewFive  = 1 << 3,
54    UIViewSix   = 1 << 4,
55    UIViewSeven = 1 << 5
56};
57
58typedef NS_OPTIONS(NSUInteger, UI) {
59  UIOne = 0,
60  UITwo = 0x1,
61  UIthree = 0x8,
62  UIFour = 0x100
63};
64
65typedef NS_OPTIONS(unsigned int, UIPOWER2) {
66  UIP2One = 0,
67  UIP2Two = 0x1,
68  UIP2three = 0x8,
69  UIP2Four = 0x100
70};
71
72enum {
73  UNOne,
74  UNTwo
75};
76
77// Should use NS_ENUM even though it is all power of 2.
78typedef NS_ENUM(NSInteger, UIK) {
79  UIKOne = 1,
80  UIKTwo = 2,
81};
82
83typedef NS_ENUM(unsigned int, NSTickMarkPosition)  {
84    NSTickMarkBelow = 0,
85    NSTickMarkAbove = 1,
86    NSTickMarkLeft = NSTickMarkAbove,
87    NSTickMarkRight = NSTickMarkBelow
88};
89
90typedef NS_OPTIONS(NSUInteger, UITableStyle) {
91    UIViewNone         = 0x0,
92    UIViewMargin       = 0x1,
93    UIViewWidth        = 0x2,
94    UIViewRightMargin  = 0x3,
95    UIViewBottomMargin = 0xbadbeef
96};
97
98typedef NS_OPTIONS(NSUInteger, UIStyle) {
99    UIView0         = 0,
100    UIView1 = 0XBADBEEF
101};
102
103typedef NS_ENUM(NSUInteger, NSBitmapImageFileType) {
104    NSTIFFFileType,
105    NSBMPFileType,
106    NSGIFFileType,
107    NSJPEGFileType,
108    NSPNGFileType,
109    NSJPEG2000FileType
110};
111
112typedef NS_ENUM(NSUInteger, NSAlertStyle) {
113    NSWarningAlertStyle = 0,
114    NSInformationalAlertStyle = 1,
115    NSCriticalAlertStyle = 2
116};
117
118enum {
119    D_NSTIFFFileType,
120    D_NSBMPFileType,
121    D_NSGIFFileType,
122    D_NSJPEGFileType,
123    D_NSPNGFileType,
124    D_NSJPEG2000FileType
125};
126typedef NSUInteger D_NSBitmapImageFileType DEPRECATED;
127
128typedef enum  {
129    D_NSTickMarkBelow = 0,
130    D_NSTickMarkAbove = 1
131} D_NSTickMarkPosition DEPRECATED;
132
133
134#define NS_ENUM_AVAILABLE(X,Y)
135
136
137typedef NS_OPTIONS(NSUInteger, NSFOptions) {
138    NSFStrongMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 0),
139    NSFOpaqueMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 0),
140    NSFMallocMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 0),
141    NSFMachVirtualMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 0),
142    NSFWeakMemory NS_ENUM_AVAILABLE(10_8, 6_0) = (5UL << 0),
143
144    NSFObjectPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 8),
145    NSFOpaquePersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 8),
146    NSFObjectPointerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 8),
147    NSFCStringPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 8),
148    NSFStructPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 8),
149    NSFIntegerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (5UL << 8),
150    NSFCopyIn NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 16),
151};
152
153typedef NS_ENUM(unsigned int, UIP) {
154  UIP0One = 0,
155  UIP0Two = 1,
156  UIP0Three = 2,
157  UIP0Four = 10,
158  UIP0Last = 0x100
159};
160
161typedef NS_OPTIONS(unsigned int, UIP_3) {
162  UIPZero = 0x0,
163  UIPOne = 0x1,
164  UIPTwo = 0x2,
165  UIP10 = 0x10,
166  UIPHundred = 0x100
167};
168
169typedef NS_ENUM(unsigned int, UIP4_3) {
170  UIP4Zero = 0x0,
171  UIP4One = 0x1,
172  UIP4Two = 0x2,
173  UIP410 = 0x10,
174  UIP4Hundred = 100
175};
176
177typedef NS_OPTIONS(unsigned int, UIP5_3) {
178  UIP5Zero = 0x0,
179  UIP5Two = 0x2,
180  UIP510 = 0x3,
181  UIP5Hundred = 0x4
182};
183
184typedef NS_ENUM(unsigned int, UIP6_3) {
185  UIP6Zero = 0x0,
186  UIP6One = 0x1,
187  UIP6Two = 0x2,
188  UIP610 = 10,
189  UIP6Hundred = 0x100
190};
191
192typedef NS_ENUM(unsigned int, UIP7_3) {
193  UIP7Zero = 0x0,
194  UIP7One = 1,
195  UIP7Two = 0x2,
196  UIP710 = 10,
197  UIP7Hundred = 100
198};
199
200
201typedef NS_ENUM(unsigned int, UIP8_3) {
202  Random = 0,
203  Random1 = 2,
204  Random2 = 4,
205  Random3 = 0x12345,
206  Random4 = 0x3444444,
207  Random5 = 0xbadbeef,
208  Random6
209};
210
211// rdar://15200602
212#define NS_AVAILABLE_MAC(X)  __attribute__((availability(macosx,introduced=X)))
213#define NS_ENUM_AVAILABLE_MAC(X) __attribute__((availability(macosx,introduced=X)))
214
215typedef NS_ENUM(NSInteger, NSModalResponse) {
216    NSModalResponseStop                 = (-1000), // Also used as the default response for sheets
217    NSModalResponseAbort                = (-1001),
218    NSModalResponseContinue             = (-1002),
219} NS_ENUM_AVAILABLE_MAC(10.9);
220
221// rdar://15201056
222typedef NSUInteger FarFarAwayOptions;
223
224// rdar://15200915
225typedef NS_OPTIONS(NSUInteger, FarAwayOptions) {
226  FarAway1    = 1 << 1,
227  FarAway2    = 1 << 2
228};
229typedef NS_OPTIONS(NSUInteger, NSWorkspaceLaunchOptions) {
230     NSWorkspaceLaunchAndPrint =                 0x00000002,
231     NSWorkspaceLaunchWithErrorPresentation    = 0x00000040,
232     NSWorkspaceLaunchInhibitingBackgroundOnly = 0x00000080,
233     NSWorkspaceLaunchWithoutAddingToRecents   = 0x00000100,
234     NSWorkspaceLaunchWithoutActivation        = 0x00000200,
235     NSWorkspaceLaunchAsync                    = 0x00010000,
236     NSWorkspaceLaunchAllowingClassicStartup   = 0x00020000,
237     NSWorkspaceLaunchPreferringClassic        = 0x00040000,
238     NSWorkspaceLaunchNewInstance              = 0x00080000,
239     NSWorkspaceLaunchAndHide                  = 0x00100000,
240     NSWorkspaceLaunchAndHideOthers            = 0x00200000,
241     NSWorkspaceLaunchDefault = NSWorkspaceLaunchAsync |
242     NSWorkspaceLaunchAllowingClassicStartup
243};
244
245typedef NS_OPTIONS(NSUInteger, NSExcludeOptions) {
246    NSExcludeQuickDrawElementsIconCreationOption    = 1 << 1,
247    NSExclude10_4ElementsIconCreationOption         = 1 << 2
248};
249
250typedef NS_OPTIONS(NSUInteger, NSExcludeCreationOption) {
251    NSExcludeQuickDrawElementsCreationOption    = 1 << 1,
252    NSExclude10_4ElementsCreationOption         = 1 << 2
253};
254
255
256typedef NS_OPTIONS(NSUInteger, NSExcludeIconOptions) {
257    NSExcludeQuickDrawElementsIconOption    = 1 << 1,
258    NSExclude10_4ElementsIconOption         = 1 << 2
259};
260
261@interface INTF {
262  NSExcludeIconOptions I1;
263  NSExcludeIconOptions I2;
264}
265@end
266
267enum {
268  FarFarAway1    = 1 << 1,
269  FarFarAway2    = 1 << 2
270};
271
272// rdar://15200915
273typedef NS_OPTIONS(NSUInteger, NSWindowOcclusionState) {
274    NSWindowOcclusionStateVisible = 1UL << 1,
275};
276
277typedef NS_ENUM(NSUInteger, NSWindowNumberListOptions) {
278    NSWindowCloseButton,
279    NSWindowMiniaturizeButton,
280    NSWindowZoomButton,
281    NSWindowToolbarButton,
282    NSWindowDocumentIconButton
283};
284
285typedef NS_ENUM(NSUInteger, NSSelectionDirection) {
286    NSDirectSelection = 0,
287    NSSelectingNext,
288    NSSelectingPrevious
289};
290
291// standard window buttons
292
293// rdar://18262255
294typedef NS_ENUM(NSUInteger, Thing) {
295   ThingOne,
296   ThingTwo,
297   ThingThree,
298};
299
300// rdar://18498539
301typedef NS_ENUM(unsigned int, NumericEnum) {
302    one = 1
303};
304
305typedef NS_ENUM(unsigned int, NumericEnum2) {
306    Two = 2
307};
308
309typedef NS_ENUM(unsigned int, NumericEnum3) {
310    Three = 3
311};
312
313typedef NS_OPTIONS(unsigned int, NumericEnum4) {
314    Four = 4
315};
316
317// rdar://18532199
318typedef NS_ENUM(int8_t, MyEnumeratedType)
319{
320  UI8one = 1
321};
322
323
324typedef NS_OPTIONS(uint16_t, UI16) {
325  UI16One = 0,
326  UI16Two = 0x1,
327  UI16three = 0x8,
328  UI16Four = 0x100
329};
330
331typedef NS_ENUM(uint32_t, UI32TableViewCellStyle) {
332    UI32ViewAutoresizingNone                 = 0,
333    UI32ViewAutoresizingFlexibleLeftMargin,
334    UI32ViewAutoresizingFlexibleWidth,
335    UI32ViewAutoresizingFlexibleRightMargin,
336    UI32ViewAutoresizingFlexibleTopMargin,
337    UI32ViewAutoresizingFlexibleHeight,
338    UI32ViewAutoresizingFlexibleBottomMargin
339};
340
341typedef NS_ENUM(uint8_t, UI8Type)
342{
343        UIU8one = 1
344};
345
346// rdar://19352510
347typedef NS_ENUM(NSInteger, MyEnum) {zero};
348
349typedef NS_ENUM(NSUInteger, MyEnumNSUInteger) {two};
350
351typedef NS_ENUM(int, MyEnumint) {three, four};
352
353typedef NS_ENUM(unsigned long, MyEnumlonglong) {five};
354
355typedef NS_ENUM(unsigned long long, MyEnumunsignedlonglong) {
356  ll1,
357  ll2= 0xff,
358  ll3,
359  ll4
360};
361
362// rdar://19994496
363typedef NS_ENUM(int8_t, MyOneEnum) {int8_one};
364
365typedef NS_ENUM(int16_t, Myint16_tEnum) {
366          int16_t_one,
367          int16_t_two };
368