1f4a2713aSLionel Sambuc// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2f4a2713aSLionel Sambuc 3f4a2713aSLionel Sambuc@protocol P1 4f4a2713aSLionel Sambuc- (void) P1proto; // expected-note {{method 'P1proto' declared here}} 5f4a2713aSLionel Sambuc+ (void) ClsP1Proto; // expected-note {{method 'ClsP1Proto' declared here}} 6f4a2713aSLionel Sambuc- (void) DefP1proto; 7f4a2713aSLionel Sambuc@end 8f4a2713aSLionel Sambuc@protocol P2 9f4a2713aSLionel Sambuc- (void) P2proto; // expected-note {{method 'P2proto' declared here}} 10f4a2713aSLionel Sambuc+ (void) ClsP2Proto; // expected-note {{method 'ClsP2Proto' declared here}} 11f4a2713aSLionel Sambuc@end 12f4a2713aSLionel Sambuc 13f4a2713aSLionel Sambuc@protocol P3<P2> 14f4a2713aSLionel Sambuc- (void) P3proto; // expected-note {{method 'P3proto' declared here}} 15f4a2713aSLionel Sambuc+ (void) ClsP3Proto; // expected-note {{method 'ClsP3Proto' declared here}} 16f4a2713aSLionel Sambuc+ (void) DefClsP3Proto; 17f4a2713aSLionel Sambuc@end 18f4a2713aSLionel Sambuc 19f4a2713aSLionel Sambuc@protocol PROTO<P1, P3> 20f4a2713aSLionel Sambuc- (void) meth; // expected-note {{method 'meth' declared here}} 21f4a2713aSLionel Sambuc- (void) meth : (int) arg1; // expected-note {{method 'meth:' declared here}} 22f4a2713aSLionel Sambuc+ (void) cls_meth : (int) arg1; // expected-note {{method 'cls_meth:' declared here}} 23f4a2713aSLionel Sambuc@end 24f4a2713aSLionel Sambuc 25*0a6a1f1dSLionel Sambuc@interface INTF <PROTO> 26f4a2713aSLionel Sambuc@end 27f4a2713aSLionel Sambuc 28*0a6a1f1dSLionel Sambuc@implementation INTF // expected-warning 9 {{in protocol '}} 29f4a2713aSLionel Sambuc- (void) DefP1proto{} 30f4a2713aSLionel Sambuc+ (void) DefClsP3Proto{} 31f4a2713aSLionel Sambuc@end 32