/* Test protocol warning. */ /* Contributed by Devang Patel . */ /* { dg-do compile } */ typedef struct objc_object { struct objc_class *class_pointer; } *id; @protocol Bar @end id Foo_Bar () { } typedef struct { int i; } MyStruct; @interface Foo { id _mainData; MyStruct *_anotherData; } -(id) mainDataSource; -(id) anotherDataSource; -(id) my_method: (int) i; @end @implementation Foo -(id) anotherDataSource { return (id)_anotherData; } -(id) mainDataSource { return _mainData; } -(id) my_method: (int) i { id one = [self anotherDataSource]; i = i - 1; // Do not issue warning about my_method not found in protocol return [(one ? [self mainDataSource] : one) my_method:i]; } @end