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 long NSInteger; 7 typedef unsigned long NSUInteger; 8 9 #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type 10 #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type 11 #define DEPRECATED __attribute__((deprecated)) 12 13 typedef NS_ENUM(NSInteger, wibble) { 14 blah, 15 blarg 16 }; 17 18 typedef NS_ENUM(NSUInteger, UITableViewCellStyle) { 19 UIViewAutoresizingNone = 0, 20 UIViewAutoresizingFlexibleLeftMargin, 21 UIViewAutoresizingFlexibleWidth, 22 UIViewAutoresizingFlexibleRightMargin, 23 UIViewAutoresizingFlexibleTopMargin, 24 UIViewAutoresizingFlexibleHeight, 25 UIViewAutoresizingFlexibleBottomMargin 26 }; 27 28 typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { 29 UIViewAnimationTransitionNone, 30 UIViewAnimationTransitionFlipFromLeft, 31 UIViewAnimationTransitionFlipFromRight, 32 UIViewAnimationTransitionCurlUp, 33 UIViewAnimationTransitionCurlDown, 34 } ; 35 36 typedef NS_OPTIONS(NSUInteger, UITableView) { 37 UIViewOne = 0, 38 UIViewTwo = 1 << 0, 39 UIViewThree = 1 << 1, 40 UIViewFour = 1 << 2, 41 UIViewFive = 1 << 3, 42 UIViewSix = 1 << 4, 43 UIViewSeven = 1 << 5 44 } ; 45 46 typedef NS_OPTIONS(NSUInteger, UI) { 47 UIOne = 0, 48 UITwo = 0x1, 49 UIthree = 0x8, 50 UIFour = 0x100 51 }; 52 53 typedef NS_OPTIONS(NSUInteger, UIPOWER2) { 54 UIP2One = 0, 55 UIP2Two = 0x1, 56 UIP2three = 0x8, 57 UIP2Four = 0x100 58 } ; 59 60 enum { 61 UNOne, 62 UNTwo 63 }; 64 65 // Should use NS_ENUM even though it is all power of 2. 66 typedef NS_ENUM(NSInteger, UIK) { 67 UIKOne = 1, 68 UIKTwo = 2, 69 }; 70 71 typedef NS_ENUM(NSInteger, NSTickMarkPosition) { 72 NSTickMarkBelow = 0, 73 NSTickMarkAbove = 1, 74 NSTickMarkLeft = NSTickMarkAbove, 75 NSTickMarkRight = NSTickMarkBelow 76 } ; 77 78 typedef NS_OPTIONS(NSUInteger, UITableStyle) { 79 UIViewNone = 0x0, 80 UIViewMargin = 0x1, 81 UIViewWidth = 0x2, 82 UIViewRightMargin = 0x3, 83 UIViewBottomMargin = 0xbadbeef 84 }; 85 86 typedef NS_OPTIONS(NSUInteger, UIStyle) { 87 UIView0 = 0, 88 UIView1 = 0XBADBEEF 89 }; 90 91 typedef NS_ENUM(NSUInteger, NSBitmapImageFileType) { 92 NSTIFFFileType, 93 NSBMPFileType, 94 NSGIFFileType, 95 NSJPEGFileType, 96 NSPNGFileType, 97 NSJPEG2000FileType 98 }; 99 100 typedef NS_ENUM(NSUInteger, NSAlertStyle) { 101 NSWarningAlertStyle = 0, 102 NSInformationalAlertStyle = 1, 103 NSCriticalAlertStyle = 2 104 }; 105 106 enum { 107 D_NSTIFFFileType, 108 D_NSBMPFileType, 109 D_NSGIFFileType, 110 D_NSJPEGFileType, 111 D_NSPNGFileType, 112 D_NSJPEG2000FileType 113 }; 114 typedef NSUInteger D_NSBitmapImageFileType DEPRECATED; 115 116 typedef enum { 117 D_NSTickMarkBelow = 0, 118 D_NSTickMarkAbove = 1 119 } D_NSTickMarkPosition DEPRECATED; 120 121 122 #define NS_ENUM_AVAILABLE(X,Y) 123 124 125 typedef NS_OPTIONS(NSUInteger, NSFOptions) { 126 NSFStrongMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 0), 127 NSFOpaqueMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 0), 128 NSFMallocMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 0), 129 NSFMachVirtualMemory NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 0), 130 NSFWeakMemory NS_ENUM_AVAILABLE(10_8, 6_0) = (5UL << 0), 131 132 NSFObjectPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (0UL << 8), 133 NSFOpaquePersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 8), 134 NSFObjectPointerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (2UL << 8), 135 NSFCStringPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (3UL << 8), 136 NSFStructPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (4UL << 8), 137 NSFIntegerPersonality NS_ENUM_AVAILABLE(10_5, 6_0) = (5UL << 8), 138 NSFCopyIn NS_ENUM_AVAILABLE(10_5, 6_0) = (1UL << 16), 139 }; 140 141 typedef NS_ENUM(NSInteger, UIP) { 142 UIP0One = 0, 143 UIP0Two = 1, 144 UIP0Three = 2, 145 UIP0Four = 10, 146 UIP0Last = 0x100 147 } ; 148 149 typedef NS_OPTIONS(NSUInteger, UIP_3) { 150 UIPZero = 0x0, 151 UIPOne = 0x1, 152 UIPTwo = 0x2, 153 UIP10 = 0x10, 154 UIPHundred = 0x100 155 } ; 156 157 typedef NS_ENUM(NSInteger, UIP4_3) { 158 UIP4Zero = 0x0, 159 UIP4One = 0x1, 160 UIP4Two = 0x2, 161 UIP410 = 0x10, 162 UIP4Hundred = 100 163 } ; 164 165 typedef NS_OPTIONS(NSUInteger, UIP5_3) { 166 UIP5Zero = 0x0, 167 UIP5Two = 0x2, 168 UIP510 = 0x3, 169 UIP5Hundred = 0x4 170 } ; 171 172 typedef NS_ENUM(NSInteger, UIP6_3) { 173 UIP6Zero = 0x0, 174 UIP6One = 0x1, 175 UIP6Two = 0x2, 176 UIP610 = 10, 177 UIP6Hundred = 0x100 178 } ; 179 180 typedef NS_ENUM(NSInteger, UIP7_3) { 181 UIP7Zero = 0x0, 182 UIP7One = 1, 183 UIP7Two = 0x2, 184 UIP710 = 10, 185 UIP7Hundred = 100 186 } ; 187 188 189 typedef NS_ENUM(NSInteger, UIP8_3) { 190 Random = 0, 191 Random1 = 2, 192 Random2 = 4, 193 Random3 = 0x12345, 194 Random4 = 0x3444444, 195 Random5 = 0xbadbeef, 196 Random6 197 } ; 198 199 // rdar://15200602 200 #define NS_AVAILABLE_MAC(X) __attribute__((availability(macosx,introduced=X))) 201 #define NS_ENUM_AVAILABLE_MAC(X) __attribute__((availability(macosx,introduced=X))) 202 203 typedef NS_ENUM(NSInteger, NSModalResponse) { 204 NSModalResponseStop = (-1000), // Also used as the default response for sheets 205 NSModalResponseAbort = (-1001), 206 NSModalResponseContinue = (-1002), 207 } NS_ENUM_AVAILABLE_MAC(10.9); 208 209 // rdar://15201056 210 typedef NSUInteger FarFarAwayOptions; 211 212 // rdar://15200915 213 typedef NS_OPTIONS(NSUInteger, FarAwayOptions) { 214 FarAway1 = 1 << 1, 215 FarAway2 = 1 << 2 216 }; 217 typedef NS_OPTIONS(NSUInteger, NSWorkspaceLaunchOptions) { 218 NSWorkspaceLaunchAndPrint = 0x00000002, 219 NSWorkspaceLaunchWithErrorPresentation = 0x00000040, 220 NSWorkspaceLaunchInhibitingBackgroundOnly = 0x00000080, 221 NSWorkspaceLaunchWithoutAddingToRecents = 0x00000100, 222 NSWorkspaceLaunchWithoutActivation = 0x00000200, 223 NSWorkspaceLaunchAsync = 0x00010000, 224 NSWorkspaceLaunchAllowingClassicStartup = 0x00020000, 225 NSWorkspaceLaunchPreferringClassic = 0x00040000, 226 NSWorkspaceLaunchNewInstance = 0x00080000, 227 NSWorkspaceLaunchAndHide = 0x00100000, 228 NSWorkspaceLaunchAndHideOthers = 0x00200000, 229 NSWorkspaceLaunchDefault = NSWorkspaceLaunchAsync | 230 NSWorkspaceLaunchAllowingClassicStartup 231 }; 232 233 typedef NS_OPTIONS(NSUInteger, NSExcludeOptions) { 234 NSExcludeQuickDrawElementsIconCreationOption = 1 << 1, 235 NSExclude10_4ElementsIconCreationOption = 1 << 2 236 }; 237 238 typedef NS_OPTIONS(NSUInteger, NSExcludeCreationOption) { 239 NSExcludeQuickDrawElementsCreationOption = 1 << 1, 240 NSExclude10_4ElementsCreationOption = 1 << 2 241 }; 242 243 244 typedef NS_OPTIONS(NSUInteger, NSExcludeIconOptions) { 245 NSExcludeQuickDrawElementsIconOption = 1 << 1, 246 NSExclude10_4ElementsIconOption = 1 << 2 247 }; 248 249 @interface INTF { 250 NSExcludeIconOptions I1; 251 NSExcludeIconOptions I2; 252 } 253 @end 254 255 enum { 256 FarFarAway1 = 1 << 1, 257 FarFarAway2 = 1 << 2 258 }; 259 260 // rdar://15200915 261 typedef NS_OPTIONS(NSUInteger, NSWindowOcclusionState) { 262 NSWindowOcclusionStateVisible = 1UL << 1, 263 }; 264 265 typedef NS_ENUM(NSUInteger, NSWindowNumberListOptions) { 266 NSWindowCloseButton, 267 NSWindowMiniaturizeButton, 268 NSWindowZoomButton, 269 NSWindowToolbarButton, 270 NSWindowDocumentIconButton 271 }; 272 273 typedef NS_ENUM(NSUInteger, NSSelectionDirection) { 274 NSDirectSelection = 0, 275 NSSelectingNext, 276 NSSelectingPrevious 277 }; 278 279 // standard window buttons 280