1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2 3 @interface INTF 4 - (void) meth; 5 - (void) meth : (int) arg1; 6 - (int) int_meth; // expected-note {{method 'int_meth' declared here}} 7 + (int) cls_meth; // expected-note {{method 'cls_meth' declared here}} 8 + (void) cls_meth1 : (int) arg1; // expected-note {{method 'cls_meth1:' declared here}} 9 @end 10 11 @implementation INTF // expected-warning {{method definition for 'int_meth' not found}} \ 12 // expected-warning {{method definition for 'cls_meth' not found}} \ 13 // expected-warning {{method definition for 'cls_meth1:' not found}} 14 - (void) meth {} 15 - (void) meth : (int) arg2{} 16 - (void) cls_meth1 : (int) arg2{} 17 @end 18 19 @interface INTF1 20 - (void) meth; 21 - (void) meth : (int) arg1; 22 - (int) int_meth; // expected-note {{method 'int_meth' declared here}} 23 + (int) cls_meth; // expected-note {{method 'cls_meth' declared here}} 24 + (void) cls_meth1 : (int) arg1; // expected-note {{method 'cls_meth1:' declared here}} 25 @end 26 27 @implementation INTF1 // expected-warning {{method definition for 'int_meth' not found}} \ 28 // expected-warning {{method definition for 'cls_meth' not found}} \ 29 // expected-warning {{method definition for 'cls_meth1:' not found}} 30 - (void) meth {} 31 - (void) meth : (int) arg2{} 32 - (void) cls_meth1 : (int) arg2{} 33 @end 34 35 @interface INTF2 36 - (void) meth; 37 - (void) meth : (int) arg1; 38 - (void) cls_meth1 : (int) arg1; 39 @end 40 41 @implementation INTF2 42 - (void) meth {} 43 - (void) meth : (int) arg2{} 44 - (void) cls_meth1 : (int) arg2{} 45 @end 46 47 48 // rdar://8850818 49 @interface Root @end 50 51 @interface Foo : Root @end 52 53 @implementation Foo 54 55 - (void)someFunction { return; } 56 57 + (void)anotherFunction { 58 [self someFunction]; // expected-warning {{method '+someFunction' not found (return type defaults to 'id')}} 59 } 60 @end 61