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