xref: /llvm-project/clang/test/SemaObjC/undef-protocol-methods-1.m (revision 2ccf19e1ab7496ab9a3ae11e93669281beea81e8)
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