1// RUN: %clang_cc1 -arcmt-check -fobjc-arc -fobjc-runtime=macosx-10.8.0 -triple x86_64-apple-darwin12 -fblocks -Werror %s
2// DISABLE: mingw32
3
4#if __has_feature(objc_arc)
5#define NS_AUTOMATED_REFCOUNT_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))
6#else
7#define NS_AUTOMATED_REFCOUNT_UNAVAILABLE
8#endif
9
10typedef const void * CFTypeRef;
11CFTypeRef CFBridgingRetain(id X);
12id CFBridgingRelease(CFTypeRef);
13
14typedef int BOOL;
15typedef unsigned NSUInteger;
16
17@protocol NSObject
18- (id)retain NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
19- (NSUInteger)retainCount NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
20- (oneway void)release NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
21- (id)autorelease NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
22@end
23
24@interface NSObject <NSObject> {}
25- (id)init;
26
27+ (id)new;
28+ (id)alloc;
29- (void)dealloc;
30
31- (void)finalize;
32
33- (id)copy;
34- (id)mutableCopy;
35@end
36
37typedef const struct __CFString * CFStringRef;
38extern const CFStringRef kUTTypePlainText;
39extern const CFStringRef kUTTypeRTF;
40@class NSString;
41
42@interface Test : NSObject
43@property (weak) NSString *weakProperty;
44@end
45
46@implementation Test
47@end
48
49#if ! __has_feature(objc_arc)
50#error This file must be compiled with ARC (set -fobjc_arc flag on file)
51#endif
52