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