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