1acfbe9e1SPatrick Beard// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 289026888SChris Lattner 389026888SChris Lattner@protocol P1 459b10db2STed Kremenek- (void) P1proto; // expected-note {{method 'P1proto' declared here}} 559b10db2STed Kremenek+ (void) ClsP1Proto; // expected-note {{method 'ClsP1Proto' declared here}} 689026888SChris Lattner- (void) DefP1proto; 789026888SChris Lattner@end 889026888SChris Lattner@protocol P2 959b10db2STed Kremenek- (void) P2proto; // expected-note {{method 'P2proto' declared here}} 1059b10db2STed Kremenek+ (void) ClsP2Proto; // expected-note {{method 'ClsP2Proto' declared here}} 1189026888SChris Lattner@end 1289026888SChris Lattner 1389026888SChris Lattner@protocol P3<P2> 1459b10db2STed Kremenek- (void) P3proto; // expected-note {{method 'P3proto' declared here}} 1559b10db2STed Kremenek+ (void) ClsP3Proto; // expected-note {{method 'ClsP3Proto' declared here}} 1689026888SChris Lattner+ (void) DefClsP3Proto; 1789026888SChris Lattner@end 1889026888SChris Lattner 1989026888SChris Lattner@protocol PROTO<P1, P3> 2059b10db2STed Kremenek- (void) meth; // expected-note {{method 'meth' declared here}} 2159b10db2STed Kremenek- (void) meth : (int) arg1; // expected-note {{method 'meth:' declared here}} 2259b10db2STed Kremenek+ (void) cls_meth : (int) arg1; // expected-note {{method 'cls_meth:' declared here}} 2389026888SChris Lattner@end 2489026888SChris Lattner 25*2ccf19e1STed Kremenek@interface INTF <PROTO> 2689026888SChris Lattner@end 2789026888SChris Lattner 28*2ccf19e1STed Kremenek@implementation INTF // expected-warning 9 {{in protocol '}} 2989026888SChris Lattner- (void) DefP1proto{} 3089026888SChris Lattner+ (void) DefClsP3Proto{} 3189026888SChris Lattner@end 32