| // RUN: rm -rf %t |
| // 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 |
| // RUN: c-arcmt-test -mt-migrate-directory %t | arcmt-test -verify-transformed-files %s.result |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c -fobjc-runtime-has-weak -fobjc-arc %s.result |
| |
| typedef signed char int8_t; |
| typedef short int16_t; |
| typedef int int32_t; |
| typedef long NSInteger; |
| typedef long long int64_t; |
| |
| typedef unsigned char uint8_t; |
| typedef unsigned short uint16_t; |
| typedef unsigned int uint32_t; |
| typedef unsigned long NSUInteger; |
| typedef unsigned long long uint64_t; |
| |
| #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type |
| #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type |
| #define DEPRECATED __attribute__((deprecated)) |
| |
| typedef NS_ENUM(NSInteger, wibble) { |
| blah, |
| blarg |
| }; |
| |
| typedef NS_ENUM(NSUInteger, UITableViewCellStyle) { |
| UIViewAutoresizingNone = 0, |
| UIViewAutoresizingFlexibleLeftMargin, |
| UIViewAutoresizingFlexibleWidth, |
| UIViewAutoresizingFlexibleRightMargin, |
| UIViewAutoresizingFlexibleTopMargin, |
| UIViewAutoresizingFlexibleHeight, |
| UIViewAutoresizingFlexibleBottomMargin |
| }; |
| |
| typedef NS_ENUM(unsigned int, UIViewAnimationTransition) { |
| UIViewAnimationTransitionNone, |
| UIViewAnimationTransitionFlipFromLeft, |
| UIViewAnimationTransitionFlipFromRight, |
| UIViewAnimationTransitionCurlUp, |
| UIViewAnimationTransitionCurlDown, |
| }; |
| |
| typedef NS_OPTIONS(unsigned int, UITableView) { |
| UIViewOne = 0, |
| UIViewTwo = 1 << 0, |
| UIViewThree = 1 << 1, |
| UIViewFour = 1 << 2, |
| UIViewFive = 1 << 3, |
| UIViewSix = 1 << 4, |
| UIViewSeven = 1 << 5 |
| }; |
| |
| typedef NS_OPTIONS(NSUInteger, UI) { |
| UIOne = 0, |
| UITwo = 0x1, |
| UIthree = 0x8, |
| UIFour = 0x100 |
| }; |
| |
| typedef NS_OPTIONS(unsigned int, UIPOWER2) { |
| UIP2One = 0, |
| UIP2Two = 0x1, |
| UIP2three = 0x8, |
| UIP2Four = 0x100 |
| }; |
| |
| enum { |
| UNOne, |
| UNTwo |
| }; |
| |
| // Should use NS_ENUM even though it is all power of 2. |
| typedef NS_ENUM(NSInteger, UIK) { |
| UIKOne = 1, |
| UIKTwo = 2, |
| }; |
| |
| typedef NS_ENUM(unsigned int, NSTickMarkPosition) { |
| NSTickMarkBelow = 0, |
| NSTickMarkAbove = 1, |
| NSTickMarkLeft = NSTickMarkAbove, |
| NSTickMarkRight = NSTickMarkBelow |
| }; |
| |
| typedef NS_OPTIONS(NSUInteger, UITableStyle) { |
| UIViewNone = 0x0, |
| UIViewMargin = 0x1, |
| UIViewWidth = 0x2, |
| UIViewRightMargin = 0x3, |
| UIViewBottomMargin = 0xbadbeef |
| }; |
| |
| typedef NS_OPTIONS(NSUInteger, UIStyle) { |
| UIView0 = 0, |
| UIView1 = 0XBADBEEF |
| }; |
| |
| typedef NS_ENUM(NSUInteger, NSBitmapImageFileType) { |
| NSTIFFFileType, |
| NSBMPFileType, |
| NSGIFFileType, |
| NSJPEGFileType, |
| NSPNGFileType, |
| NSJPEG2000FileType |
| }; |
| |
| typedef NS_ENUM(NSUInteger, NSAlertStyle) { |
| NSWarningAlertStyle = 0, |
| NSInformationalAlertStyle = 1, |
| NSCriticalAlertStyle = 2 |
| }; |
| |
| enum { |
| D_NSTIFFFileType, |
| D_NSBMPFileType, |
| D_NSGIFFileType, |
| D_NSJPEGFileType, |
| D_NSPNGFileType, |
| D_NSJPEG2000FileType |
| }; |
| typedef NSUInteger D_NSBitmapImageFileType DEPRECATED; |
| |
| typedef enum { |
| D_NSTickMarkBelow = 0, |
| D_NSTickMarkAbove = 1 |
| } D_NSTickMarkPosition DEPRECATED; |
| |
| |
| #define NS_ENUM_AVAILABLE(X,Y) |
| |
| |
| typedef NS_OPTIONS(NSUInteger, NSFOptions) { |
| NSFStrongMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 0), |
| NSFOpaqueMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 0), |
| NSFMallocMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 0), |
| NSFMachVirtualMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 0), |
| NSFWeakMemory NS_ENUM_AVAILABLE(10_8, 6_0) = (5UL << 0), |
| |
| NSFObjectPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 8), |
| NSFOpaquePersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 8), |
| NSFObjectPointerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 8), |
| NSFCStringPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 8), |
| NSFStructPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 8), |
| NSFIntegerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (5UL << 8), |
| NSFCopyIn NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 16), |
| }; |
| |
| typedef NS_ENUM(unsigned int, UIP) { |
| UIP0One = 0, |
| UIP0Two = 1, |
| UIP0Three = 2, |
| UIP0Four = 10, |
| UIP0Last = 0x100 |
| }; |
| |
| typedef NS_OPTIONS(unsigned int, UIP_3) { |
| UIPZero = 0x0, |
| UIPOne = 0x1, |
| UIPTwo = 0x2, |
| UIP10 = 0x10, |
| UIPHundred = 0x100 |
| }; |
| |
| typedef NS_ENUM(unsigned int, UIP4_3) { |
| UIP4Zero = 0x0, |
| UIP4One = 0x1, |
| UIP4Two = 0x2, |
| UIP410 = 0x10, |
| UIP4Hundred = 100 |
| }; |
| |
| typedef NS_OPTIONS(unsigned int, UIP5_3) { |
| UIP5Zero = 0x0, |
| UIP5Two = 0x2, |
| UIP510 = 0x3, |
| UIP5Hundred = 0x4 |
| }; |
| |
| typedef NS_ENUM(unsigned int, UIP6_3) { |
| UIP6Zero = 0x0, |
| UIP6One = 0x1, |
| UIP6Two = 0x2, |
| UIP610 = 10, |
| UIP6Hundred = 0x100 |
| }; |
| |
| typedef NS_ENUM(unsigned int, UIP7_3) { |
| UIP7Zero = 0x0, |
| UIP7One = 1, |
| UIP7Two = 0x2, |
| UIP710 = 10, |
| UIP7Hundred = 100 |
| }; |
| |
| |
| typedef NS_ENUM(unsigned int, UIP8_3) { |
| Random = 0, |
| Random1 = 2, |
| Random2 = 4, |
| Random3 = 0x12345, |
| Random4 = 0x3444444, |
| Random5 = 0xbadbeef, |
| Random6 |
| }; |
| |
| // rdar://15200602 |
| #define NS_AVAILABLE_MAC(X) __attribute__((availability(macosx,introduced=X))) |
| #define NS_ENUM_AVAILABLE_MAC(X) __attribute__((availability(macosx,introduced=X))) |
| |
| typedef NS_ENUM(NSInteger, NSModalResponse) { |
| NSModalResponseStop = (-1000), // Also used as the default response for sheets |
| NSModalResponseAbort = (-1001), |
| NSModalResponseContinue = (-1002), |
| } NS_ENUM_AVAILABLE_MAC(10.9); |
| |
| // rdar://15201056 |
| typedef NSUInteger FarFarAwayOptions; |
| |
| // rdar://15200915 |
| typedef NS_OPTIONS(NSUInteger, FarAwayOptions) { |
| FarAway1 = 1 << 1, |
| FarAway2 = 1 << 2 |
| }; |
| typedef NS_OPTIONS(NSUInteger, NSWorkspaceLaunchOptions) { |
| NSWorkspaceLaunchAndPrint = 0x00000002, |
| NSWorkspaceLaunchWithErrorPresentation = 0x00000040, |
| NSWorkspaceLaunchInhibitingBackgroundOnly = 0x00000080, |
| NSWorkspaceLaunchWithoutAddingToRecents = 0x00000100, |
| NSWorkspaceLaunchWithoutActivation = 0x00000200, |
| NSWorkspaceLaunchAsync = 0x00010000, |
| NSWorkspaceLaunchAllowingClassicStartup = 0x00020000, |
| NSWorkspaceLaunchPreferringClassic = 0x00040000, |
| NSWorkspaceLaunchNewInstance = 0x00080000, |
| NSWorkspaceLaunchAndHide = 0x00100000, |
| NSWorkspaceLaunchAndHideOthers = 0x00200000, |
| NSWorkspaceLaunchDefault = NSWorkspaceLaunchAsync | |
| NSWorkspaceLaunchAllowingClassicStartup |
| }; |
| |
| typedef NS_OPTIONS(NSUInteger, NSExcludeOptions) { |
| NSExcludeQuickDrawElementsIconCreationOption = 1 << 1, |
| NSExclude10_4ElementsIconCreationOption = 1 << 2 |
| }; |
| |
| typedef NS_OPTIONS(NSUInteger, NSExcludeCreationOption) { |
| NSExcludeQuickDrawElementsCreationOption = 1 << 1, |
| NSExclude10_4ElementsCreationOption = 1 << 2 |
| }; |
| |
| |
| typedef NS_OPTIONS(NSUInteger, NSExcludeIconOptions) { |
| NSExcludeQuickDrawElementsIconOption = 1 << 1, |
| NSExclude10_4ElementsIconOption = 1 << 2 |
| }; |
| |
| @interface INTF { |
| NSExcludeIconOptions I1; |
| NSExcludeIconOptions I2; |
| } |
| @end |
| |
| enum { |
| FarFarAway1 = 1 << 1, |
| FarFarAway2 = 1 << 2 |
| }; |
| |
| // rdar://15200915 |
| typedef NS_OPTIONS(NSUInteger, NSWindowOcclusionState) { |
| NSWindowOcclusionStateVisible = 1UL << 1, |
| }; |
| |
| typedef NS_ENUM(NSUInteger, NSWindowNumberListOptions) { |
| NSWindowCloseButton, |
| NSWindowMiniaturizeButton, |
| NSWindowZoomButton, |
| NSWindowToolbarButton, |
| NSWindowDocumentIconButton |
| }; |
| |
| typedef NS_ENUM(NSUInteger, NSSelectionDirection) { |
| NSDirectSelection = 0, |
| NSSelectingNext, |
| NSSelectingPrevious |
| }; |
| |
| // standard window buttons |
| |
| // rdar://18262255 |
| typedef NS_ENUM(NSUInteger, Thing) { |
| ThingOne, |
| ThingTwo, |
| ThingThree, |
| }; |
| |
| // rdar://18498539 |
| typedef NS_ENUM(unsigned int, NumericEnum) { |
| one = 1 |
| }; |
| |
| typedef NS_ENUM(unsigned int, NumericEnum2) { |
| Two = 2 |
| }; |
| |
| typedef NS_ENUM(unsigned int, NumericEnum3) { |
| Three = 3 |
| }; |
| |
| typedef NS_OPTIONS(unsigned int, NumericEnum4) { |
| Four = 4 |
| }; |
| |
| // rdar://18532199 |
| typedef NS_ENUM(int8_t, MyEnumeratedType) |
| { |
| UI8one = 1 |
| }; |
| |
| |
| typedef NS_OPTIONS(uint16_t, UI16) { |
| UI16One = 0, |
| UI16Two = 0x1, |
| UI16three = 0x8, |
| UI16Four = 0x100 |
| }; |
| |
| typedef NS_ENUM(uint32_t, UI32TableViewCellStyle) { |
| UI32ViewAutoresizingNone = 0, |
| UI32ViewAutoresizingFlexibleLeftMargin, |
| UI32ViewAutoresizingFlexibleWidth, |
| UI32ViewAutoresizingFlexibleRightMargin, |
| UI32ViewAutoresizingFlexibleTopMargin, |
| UI32ViewAutoresizingFlexibleHeight, |
| UI32ViewAutoresizingFlexibleBottomMargin |
| }; |
| |
| typedef NS_ENUM(uint8_t, UI8Type) |
| { |
| UIU8one = 1 |
| }; |
| |
| // rdar://19352510 |
| typedef NS_ENUM(NSInteger, MyEnum) {zero}; |
| |
| typedef NS_ENUM(NSUInteger, MyEnumNSUInteger) {two}; |
| |
| typedef NS_ENUM(int, MyEnumint) {three, four}; |
| |
| typedef NS_ENUM(unsigned long, MyEnumlonglong) {five}; |
| |
| typedef NS_ENUM(unsigned long long, MyEnumunsignedlonglong) { |
| ll1, |
| ll2= 0xff, |
| ll3, |
| ll4 |
| }; |
| |
| // rdar://19994496 |
| typedef NS_ENUM(int8_t, MyOneEnum) {int8_one}; |
| |
| typedef NS_ENUM(int16_t, Myint16_tEnum) { |
| int16_t_one, |
| int16_t_two }; |