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 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; 11 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; 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 enum { 23 blah, 24 blarg 25 }; 26 typedef NSInteger wibble; 27 28 enum { 29 UIViewAutoresizingNone = 0, 30 UIViewAutoresizingFlexibleLeftMargin, 31 UIViewAutoresizingFlexibleWidth, 32 UIViewAutoresizingFlexibleRightMargin, 33 UIViewAutoresizingFlexibleTopMargin, 34 UIViewAutoresizingFlexibleHeight, 35 UIViewAutoresizingFlexibleBottomMargin 36 }; 37 typedef NSUInteger UITableViewCellStyle; 38 39 typedef enum { 40 UIViewAnimationTransitionNone, 41 UIViewAnimationTransitionFlipFromLeft, 42 UIViewAnimationTransitionFlipFromRight, 43 UIViewAnimationTransitionCurlUp, 44 UIViewAnimationTransitionCurlDown, 45 } UIViewAnimationTransition; 46 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; 56 57 enum { 58 UIOne = 0, 59 UITwo = 0x1, 60 UIthree = 0x8, 61 UIFour = 0x100 62 }; 63 typedef NSInteger UI; 64 65 typedef enum { 66 UIP2One = 0, 67 UIP2Two = 0x1, 68 UIP2three = 0x8, 69 UIP2Four = 0x100 70 } UIPOWER2; 71 72 enum { 73 UNOne, 74 UNTwo 75 }; 76 77 // Should use NS_ENUM even though it is all power of 2. 78 enum { 79 UIKOne = 1, 80 UIKTwo = 2, 81 }; 82 typedef NSInteger UIK; 83 84 typedef enum { 85 NSTickMarkBelow = 0, 86 NSTickMarkAbove = 1, 87 NSTickMarkLeft = NSTickMarkAbove, 88 NSTickMarkRight = NSTickMarkBelow 89 } NSTickMarkPosition; 90 91 enum { 92 UIViewNone = 0x0, 93 UIViewMargin = 0x1, 94 UIViewWidth = 0x2, 95 UIViewRightMargin = 0x3, 96 UIViewBottomMargin = 0xbadbeef 97 }; 98 typedef NSInteger UITableStyle; 99 100 enum { 101 UIView0 = 0, 102 UIView1 = 0XBADBEEF 103 }; 104 typedef NSInteger UIStyle; 105 106 enum { 107 NSTIFFFileType, 108 NSBMPFileType, 109 NSGIFFileType, 110 NSJPEGFileType, 111 NSPNGFileType, 112 NSJPEG2000FileType 113 }; 114 typedef NSUInteger NSBitmapImageFileType; 115 116 enum { 117 NSWarningAlertStyle = 0, 118 NSInformationalAlertStyle = 1, 119 NSCriticalAlertStyle = 2 120 }; 121 typedef NSUInteger NSAlertStyle; 122 123 enum { 124 D_NSTIFFFileType, 125 D_NSBMPFileType, 126 D_NSGIFFileType, 127 D_NSJPEGFileType, 128 D_NSPNGFileType, 129 D_NSJPEG2000FileType 130 }; 131 typedef NSUInteger D_NSBitmapImageFileType DEPRECATED; 132 133 typedef enum { 134 D_NSTickMarkBelow = 0, 135 D_NSTickMarkAbove = 1 136 } D_NSTickMarkPosition DEPRECATED; 137 138 139 #define NS_ENUM_AVAILABLE(X,Y) 140 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), 147 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), 155 }; 156 157 typedef NSUInteger NSFOptions; 158 159 typedef enum { 160 UIP0One = 0, 161 UIP0Two = 1, 162 UIP0Three = 2, 163 UIP0Four = 10, 164 UIP0Last = 0x100 165 } UIP; 166 167 typedef enum { 168 UIPZero = 0x0, 169 UIPOne = 0x1, 170 UIPTwo = 0x2, 171 UIP10 = 0x10, 172 UIPHundred = 0x100 173 } UIP_3; 174 175 typedef enum { 176 UIP4Zero = 0x0, 177 UIP4One = 0x1, 178 UIP4Two = 0x2, 179 UIP410 = 0x10, 180 UIP4Hundred = 100 181 } UIP4_3; 182 183 typedef enum { 184 UIP5Zero = 0x0, 185 UIP5Two = 0x2, 186 UIP510 = 0x3, 187 UIP5Hundred = 0x4 188 } UIP5_3; 189 190 typedef enum { 191 UIP6Zero = 0x0, 192 UIP6One = 0x1, 193 UIP6Two = 0x2, 194 UIP610 = 10, 195 UIP6Hundred = 0x100 196 } UIP6_3; 197 198 typedef enum { 199 UIP7Zero = 0x0, 200 UIP7One = 1, 201 UIP7Two = 0x2, 202 UIP710 = 10, 203 UIP7Hundred = 100 204 } UIP7_3; 205 206 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; 216 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))) 220 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); 227 228 // rdar://15201056 229 typedef NSUInteger FarFarAwayOptions; 230 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 247 }; 248 typedef NSUInteger NSWorkspaceLaunchOptions; 249 250 enum { 251 NSExcludeQuickDrawElementsIconCreationOption = 1 << 1, 252 NSExclude10_4ElementsIconCreationOption = 1 << 2 253 }; 254 typedef NSUInteger NSExcludeOptions; 255 256 enum { 257 NSExcludeQuickDrawElementsCreationOption = 1 << 1, 258 NSExclude10_4ElementsCreationOption = 1 << 2 259 }; 260 typedef NSUInteger NSExcludeCreationOption; 261 262 enum { 263 FarAway1 = 1 << 1, 264 FarAway2 = 1 << 2 265 }; 266 267 enum { 268 NSExcludeQuickDrawElementsIconOption = 1 << 1, 269 NSExclude10_4ElementsIconOption = 1 << 2 270 }; 271 typedef NSUInteger NSExcludeIconOptions; 272 273 @interface INTF { 274 NSExcludeIconOptions I1; 275 NSExcludeIconOptions I2; 276 } 277 @end 278 279 enum { 280 FarFarAway1 = 1 << 1, 281 FarFarAway2 = 1 << 2 282 }; 283 284 // rdar://15200915 285 typedef NS_OPTIONS(NSUInteger, NSWindowOcclusionState) { 286 NSWindowOcclusionStateVisible = 1UL << 1, 287 }; 288 289 typedef NSUInteger NSWindowNumberListOptions; 290 291 enum { 292 NSDirectSelection = 0, 293 NSSelectingNext, 294 NSSelectingPrevious 295 }; 296 typedef NSUInteger NSSelectionDirection; 297 298 // standard window buttons 299 enum { 300 NSWindowCloseButton, 301 NSWindowMiniaturizeButton, 302 NSWindowZoomButton, 303 NSWindowToolbarButton, 304 NSWindowDocumentIconButton 305 }; 306 307 // rdar://18262255 308 typedef enum : NSUInteger { 309 ThingOne, 310 ThingTwo, 311 ThingThree, 312 } Thing; 313 314 // rdar://18498539 315 typedef enum { 316 one = 1 317 } NumericEnum; 318 319 typedef enum { 320 Two = 2 321 }NumericEnum2; 322 323 typedef enum { 324 Three = 3 325 } 326 NumericEnum3; 327 328 typedef enum { 329 Four = 4 330 } 331 332 NumericEnum4; 333 334 // rdar://18532199 335 enum 336 { 337 UI8one = 1 338 }; 339 typedef int8_t MyEnumeratedType; 340 341 342 enum { 343 UI16One = 0, 344 UI16Two = 0x1, 345 UI16three = 0x8, 346 UI16Four = 0x100 347 }; 348 typedef int16_t UI16; 349 350 enum { 351 UI32ViewAutoresizingNone = 0, 352 UI32ViewAutoresizingFlexibleLeftMargin, 353 UI32ViewAutoresizingFlexibleWidth, 354 UI32ViewAutoresizingFlexibleRightMargin, 355 UI32ViewAutoresizingFlexibleTopMargin, 356 UI32ViewAutoresizingFlexibleHeight, 357 UI32ViewAutoresizingFlexibleBottomMargin 358 }; 359 typedef uint32_t UI32TableViewCellStyle; 360 361 enum 362 { 363 UIU8one = 1 364 }; 365 typedef uint8_t UI8Type; 366 367 // rdar://19352510 368 typedef enum : NSInteger {zero} MyEnum; 369 370 typedef enum : NSUInteger {two} MyEnumNSUInteger; 371 372 typedef enum : int {three, four} MyEnumint; 373 374 typedef enum : unsigned long {five} MyEnumlonglong; 375 376 typedef enum : unsigned long long { 377 ll1, 378 ll2= 0xff, 379 ll3, 380 ll4 381 } MyEnumunsignedlonglong; 382 383 // rdar://19994496 384 typedef enum : int8_t {int8_one} MyOneEnum; 385 386 typedef enum : int16_t { 387 int16_t_one, 388 int16_t_two } Myint16_tEnum; 389