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