xref: /aosp_15_r20/external/clang/test/Analysis/inlining/InlineObjCInstanceMethod.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li 
2*67e74705SXin Li // Define a public header for the ObjC methods that are "visible" externally
3*67e74705SXin Li // and, thus, could be sub-classed. We should explore the path on which these
4*67e74705SXin Li // are sub-classed with unknown class by not inlining them.
5*67e74705SXin Li 
6*67e74705SXin Li typedef signed char BOOL;
7*67e74705SXin Li typedef struct objc_class *Class;
8*67e74705SXin Li typedef struct objc_object {
9*67e74705SXin Li     Class isa;
10*67e74705SXin Li } *id;
11*67e74705SXin Li @protocol NSObject  - (BOOL)isEqual:(id)object; @end
12*67e74705SXin Li @interface NSObject <NSObject> {}
13*67e74705SXin Li +(id)alloc;
14*67e74705SXin Li +(id)new;
15*67e74705SXin Li -(id)init;
16*67e74705SXin Li -(id)autorelease;
17*67e74705SXin Li -(id)copy;
18*67e74705SXin Li - (Class)class;
19*67e74705SXin Li -(id)retain;
20*67e74705SXin Li @end
21*67e74705SXin Li 
22*67e74705SXin Li @interface PublicClass : NSObject {
23*67e74705SXin Li   int value3;
24*67e74705SXin Li }
25*67e74705SXin Li - (int)getZeroPublic;
26*67e74705SXin Li 
27*67e74705SXin Li - (int) value2;
28*67e74705SXin Li 
29*67e74705SXin Li @property (readonly) int value1;
30*67e74705SXin Li 
31*67e74705SXin Li @property int value3;
32*67e74705SXin Li - (int)value3;
33*67e74705SXin Li - (void)setValue3:(int)newValue;
34*67e74705SXin Li @end
35*67e74705SXin Li 
36*67e74705SXin Li @interface PublicSubClass : PublicClass
37*67e74705SXin Li @end
38*67e74705SXin Li 
39*67e74705SXin Li @interface PublicParent : NSObject
40*67e74705SXin Li - (int)getZeroOverridden;
41*67e74705SXin Li @end
42*67e74705SXin Li 
43*67e74705SXin Li @interface PublicSubClass2 : PublicParent
44*67e74705SXin Li - (int) getZeroOverridden;
45*67e74705SXin Li @end
46*67e74705SXin Li 
47