1/* Test protocol warning. */ 2/* Contributed by Devang Patel <dpatel@apple.com>. */ 3/* { dg-do compile } */ 4 5typedef struct objc_object { struct objc_class *class_pointer; } *id; 6 7@protocol Bar 8@end 9 10id <Bar> Foo_Bar () { } 11 12typedef struct 13{ 14 int i; 15} MyStruct; 16 17@interface Foo 18{ 19 id _mainData; 20 MyStruct *_anotherData; 21} 22 23-(id) mainDataSource; 24-(id) anotherDataSource; 25-(id) my_method: (int) i; 26@end 27 28@implementation Foo 29-(id) anotherDataSource 30{ 31 return (id)_anotherData; 32} 33 34-(id) mainDataSource 35{ 36 return _mainData; 37} 38 39-(id) my_method: (int) i 40{ 41 id one = [self anotherDataSource]; 42 43 i = i - 1; 44 // Do not issue warning about my_method not found in protocol 45 return [(one ? [self mainDataSource] : one) my_method:i]; 46} 47 48@end 49 50