xref: /llvm-project/clang/test/SemaObjC/check-dup-decl-methods-1.m (revision 206e2302ebebaa676cdc50a08d560b4af6a55327)
1*206e2302SBob Wilson// RUN: %clang_cc1 -Wduplicate-method-match -fsyntax-only -verify %s
289026888SChris Lattner
389026888SChris Lattner@interface SUPER
489026888SChris Lattner- (int) meth;
589026888SChris Lattner+ (int) foobar;
689026888SChris Lattner@end
789026888SChris Lattner
889026888SChris Lattner@interface T @end
989026888SChris Lattner
1089026888SChris Lattner@interface class1 : SUPER
110369c57aSChris Lattner- (int) meth;	// expected-note {{previous declaration is here}}
1289026888SChris Lattner- (int*) meth;	// expected-error {{duplicate declaration of method 'meth'}}
13c17c86b5SFariborz Jahanian- (T*) meth1;   // expected-note {{previous declaration is here}}
14c17c86b5SFariborz Jahanian- (T*) meth1;   // expected-warning {{multiple declarations of method 'meth1' found and ignored}}
1589026888SChris Lattner+ (T*) meth1;
1689026888SChris Lattner@end
1789026888SChris Lattner
1889026888SChris Lattner@interface class1(cat)
190369c57aSChris Lattner- (int) catm : (char)ch1; // expected-note {{previous declaration is here}}
2089026888SChris Lattner- (int) catm1 : (char)ch : (int)i;
2189026888SChris Lattner- (int) catm : (char*)ch1; // expected-error {{duplicate declaration of method 'catm:'}}
2289026888SChris Lattner+ (int) catm1 : (char)ch : (int)i;
2389026888SChris Lattner+ (T*) meth1;
2489026888SChris Lattner@end
2589026888SChris Lattner
2689026888SChris Lattner@interface class1(cat1)
270369c57aSChris Lattner+ (int) catm1 : (char)ch : (int)i; // expected-note {{previous declaration is here}}
280369c57aSChris Lattner+ (T*) meth1; // expected-note {{previous declaration is here}}
2989026888SChris Lattner+ (int) catm1 : (char)ch : (int*)i; // expected-error {{duplicate declaration of method 'catm1::'}}
3089026888SChris Lattner+ (T**) meth1; // expected-error {{duplicate declaration of method 'meth1'}}
3189026888SChris Lattner+ (int) foobar;
3289026888SChris Lattner@end
3389026888SChris Lattner
3489026888SChris Lattner@protocol P
350369c57aSChris Lattner- (int) meth; // expected-note {{previous declaration is here}}
3689026888SChris Lattner- (int*) meth; // expected-error {{duplicate declaration of method 'meth'}}
3789026888SChris Lattner@end
3889026888SChris Lattner
39