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 definition for 'int_meth' not found}} 7 + (int) cls_meth; // expected-note {{method definition for 'cls_meth' not found}} 8 + (void) cls_meth1 : (int) arg1; // expected-note {{method definition for 'cls_meth1:' not found}} 9 @end 10 11 @implementation INTF // expected-warning {{incomplete implementation}} 12 - (void) meth {} 13 - (void) meth : (int) arg2{} 14 - (void) cls_meth1 : (int) arg2{} 15 @end 16 17 @interface INTF1 18 - (void) meth; 19 - (void) meth : (int) arg1; 20 - (int) int_meth; // expected-note {{method definition for 'int_meth' not found}} 21 + (int) cls_meth; // expected-note {{method definition for 'cls_meth' not found}} 22 + (void) cls_meth1 : (int) arg1; // expected-note {{method definition for 'cls_meth1:' not found}} 23 @end 24 25 @implementation INTF1 // expected-warning {{incomplete implementation}} 26 - (void) meth {} 27 - (void) meth : (int) arg2{} 28 - (void) cls_meth1 : (int) arg2{} 29 @end 30 31 @interface INTF2 32 - (void) meth; 33 - (void) meth : (int) arg1; 34 - (void) cls_meth1 : (int) arg1; 35 @end 36 37 @implementation INTF2 38 - (void) meth {} 39 - (void) meth : (int) arg2{} 40 - (void) cls_meth1 : (int) arg2{} 41 @end 42 43 44 // rdar://8850818 45 @interface Root @end 46 47 @interface Foo : Root @end 48 49 @implementation Foo 50 51 - (void)someFunction { return; } 52 53 + (void)anotherFunction { 54 [self someFunction]; // expected-warning {{method '+someFunction' not found (return type defaults to 'id')}} 55 } 56 @end 57