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