xref: /llvm-project/clang/test/SemaObjC/interface-scope-2.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -fsyntax-only -verify -triple i686-apple-darwin9 -Wno-objc-root-class %s
2// expected-no-diagnostics
3// FIXME: must also compile as Objective-C++
4
5typedef struct objc_selector *SEL;
6typedef signed char BOOL;
7typedef unsigned int NSUInteger;
8typedef struct _NSZone NSZone;
9@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
10@protocol NSObject
11- (BOOL)isEqual:(id)object;
12- (BOOL)respondsToSelector:(SEL)aSelector;
13@end
14@protocol NSCopying
15- (id)copyWithZone:(NSZone *)zone;
16@end
17@protocol NSMutableCopying
18- (id)mutableCopyWithZone:(NSZone *)zone;
19@end
20@protocol NSCoding
21- (void)encodeWithCoder:(NSCoder *)aCoder;
22@end
23@interface NSObject <NSObject> {}
24@end
25@class NSString, NSData;
26typedef struct _NSPoint {}
27NSRange;
28@interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>
29- (NSUInteger)length;
30@end
31@interface NSMutableString : NSString
32- (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;
33@end
34@class NSArray, NSDictionary, NSMapTable;
35@interface NSResponder : NSObject <NSCoding> {}
36@end
37@protocol NSAnimatablePropertyContainer
38- (id)animator;
39@end
40extern NSString *NSAnimationTriggerOrderIn ;
41@interface NSView : NSResponder  <NSAnimatablePropertyContainer>  {
42  struct __VFlags2 {} _vFlags2;
43}
44@end
45@class NSAttributedString, NSEvent, NSFont, NSFormatter, NSImage, NSMenu, NSText, NSView;
46@interface FooiagramView : NSView {
47id _delegate;
48}
49@end
50@class FooiagramView;
51@interface _FooiagramViewReserved : NSObject {
52@public
53  NSMutableString *_typeToSelectString;
54  struct _FooiagramViewFlags {
55      unsigned int delegateRespondsToPrintInfoForBarView : 1;
56  } _dvFlags;
57}
58@end
59extern _FooiagramViewReserved *_FooiagramViewBarViewReserved(FooiagramView *BarView);
60@interface FooiagramView (FooiagramViewPrivate)
61+ (Class)_defaultBarToolManagerClass;
62@end
63@implementation FooiagramView
64static NSMapTable *_defaultMenuForClass = 0;
65- (void)setDelegate:(id)delegate {
66  if (_delegate != delegate) {
67    struct _FooiagramViewFlags *dvFlags =
68      &_FooiagramViewBarViewReserved(self)->_dvFlags;
69    if (_delegate != ((void *)0)) {
70      dvFlags->delegateRespondsToPrintInfoForBarView = [_delegate respondsToSelector:@selector(printInfoForBarView:)];
71    }
72  }
73}
74@end
75
76@interface WizKing_MIKeep {
77struct __LoreStuffNode *_historyStuff;
78}
79@end
80typedef struct __LoreStuffNode {} LoreStuffNode;
81@implementation WizKing_MIKeep
82- init {
83  LoreStuffNode *node;
84  node = &(_historyStuff[1]);
85  return 0;
86}
87@end
88
89typedef long unsigned int __darwin_size_t;
90typedef __darwin_size_t size_t;
91void *memset(void *, int, size_t);
92@class NSString, NSURL, NSError;
93@interface OingoWerdnaPeon : NSObject {}
94@end        typedef enum {
95OingoPT_SmashOK,     OingoPT_NoSuchFile, }
96OingoWerdnaPeonIOMethod;
97@interface OingoWerdnaPeonSmashDrivel : NSObject <NSCopying> {}
98@end
99@interface OingoBoingoContraptionPeon : OingoWerdnaPeon {
100struct _OingoBoingoContraptionPeonFlags {}
101_nfttFlags;
102}
103@end
104@implementation OingoBoingoContraptionPeon
105+ (void)initialize {}
106- (id)initWithSmashDrivel:(OingoWerdnaPeonSmashDrivel *)info {
107  if (self != ((void *)0)) {
108    (void)memset(&_nfttFlags, 0, sizeof(struct _OingoBoingoContraptionPeonFlags));
109  }
110  return 0;
111}
112@end
113
114@interface Blah {
115  struct X {
116    int x;
117  } value;
118}
119@end
120
121@implementation Blah
122- (int)getValue {
123  struct X *xp = &value;
124  return xp->x;
125}
126@end
127