// Define a public header for the ObjC methods that are "visible" externally // and, thus, could be sub-classed. We should explore the path on which these // are sub-classed with unknown class by not inlining them. typedef signed char BOOL; typedef struct objc_class *Class; typedef struct objc_object { Class isa; } *id; @protocol NSObject - (BOOL)isEqual:(id)object; @end @interface NSObject {} +(id)alloc; +(id)new; -(id)init; -(id)autorelease; -(id)copy; - (Class)class; -(id)retain; @end @interface PublicClass : NSObject { int value3; } - (int)getZeroPublic; - (int) value2; @property (readonly) int value1; @property int value3; - (int)value3; - (void)setValue3:(int)newValue; @end @interface PublicSubClass : PublicClass @end @interface PublicParent : NSObject - (int)getZeroOverridden; @end @interface PublicSubClass2 : PublicParent - (int) getZeroOverridden; @end