http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47076
Summary: Protocol referenced in @interface declarations should be defined Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: objc AssignedTo: unassig...@gcc.gnu.org ReportedBy: nic...@gcc.gnu.org All the protocols in the list of protocols in an @interface declaration should have been defined; forward-references are not enough. Here is a testcase -- /* Contributed by Nicola Pero <nicola.p...@meta-innovation.com>, December 2010. */ /* { dg-do compile } */ /* Test that all protocols appearing in @interface declarations are real (ie, we saw a full @protocol definition with list of methods), and not just forward-references (ie, "@protocol NSObject;"). */ #include <objc/objc.h> @protocol MyProtocol; @protocol MyProtocol2 - (int)method2; @end @interface MyClass <MyProtocol> /* { dg-warning "definition of protocol .MyProtocol. not found" } */ @end @interface MyClass2 <MyProtocol2> /* Ok */ @end @interface MyClass2 (Category) <MyProtocol> /* { dg-warning "definition of protocol .MyProtocol. not found" } */ @end Thanks