1// RUN: %clang_cc1 -fsyntax-only %s
2// FIXME: This test case tests the patch applied in: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20080602/006017.html
3//   Eventually that logic should be treated as an extension.
4
5typedef signed char BOOL;
6typedef int NSInteger;
7typedef unsigned int NSUInteger;
8typedef struct _NSZone NSZone;
9@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
10
11@protocol NSObject
12- (BOOL)isEqual:(id)object;
13@end
14
15@protocol NSCopying
16- (id)copyWithZone:(NSZone *)zone;
17@end
18
19@protocol NSMutableCopying
20- (id)mutableCopyWithZone:(NSZone *)zone;
21@end
22
23@protocol NSCoding
24- (void)encodeWithCoder:(NSCoder *)aCoder;
25@end
26
27@interface NSObject <NSObject> {}
28@end
29
30@class NSArray;
31
32typedef struct {} NSFastEnumerationState;
33
34@protocol NSFastEnumeration
35- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
36@end
37
38@class NSString;
39
40@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>
41- (NSUInteger)count;
42- (id)objectAtIndex:(NSUInteger)index;
43@end
44
45typedef unsigned short unichar;
46
47@interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>
48- (NSUInteger)length;
49@end
50
51@interface NSSimpleCString : NSString
52{}
53
54@end
55
56@interface NSConstantString : NSSimpleCString @end
57
58extern void *_NSConstantStringClassReference;
59
60@interface NSResponder : NSObject <NSCoding> {}
61@end
62
63@class NSDate, NSDictionary, NSError, NSException, NSNotification;
64
65@interface NSWindowController : NSResponder <NSCoding> {}
66@end
67
68@class PBXBuildLog, PBXBuildLogItem, PBXBuildLogContainerItem, XCWorkQueueCommand, XCBuildLogContainerItemMutationState;
69
70@protocol PBXBuildLogContainerItems <NSObject>
71- (PBXBuildLog *)buildLog;
72@end
73
74@interface PBXBuildLogItem : NSObject {}
75- (id <PBXBuildLogContainerItems>)superitem;
76@end
77@interface PBXBuildResultsModule
78@end
79
80@implementation PBXBuildResultsModule
81- (void) revealItems
82{
83        PBXBuildLogItem *objItem;
84        PBXBuildLogItem *superitem = [objItem superitem];
85}
86@end
87