1// RUN: %clang_cc1 -fsyntax-only -fblocks -verify -Wno-objc-root-class %s 2// rdar://10414277 3 4@protocol P 5void p_foo() {} // expected-warning {{function definition inside an Objective-C container is deprecated}} 6@end 7 8@interface I 9void foo() {} // expected-warning {{function definition inside an Objective-C container is deprecated}} 10inline void v_foo() {} // expected-warning {{function definition inside an Objective-C container is deprecated}} 11static int s_foo() {return 0; } // expected-warning {{function definition inside an Objective-C container is deprecated}} 12static inline int si_val() { return 1; } // expected-warning {{function definition inside an Objective-C container is deprecated}} 13@end 14 15@interface I(CAT) 16void cat_foo() {} // expected-warning {{function definition inside an Objective-C container is deprecated}} 17@end 18 19@implementation I 20inline void v_imp_foo() {} 21@end 22 23@implementation I(CAT) 24void cat_imp_foo() {} 25@end 26 27// rdar://16859666 28@interface PrototypeState 29 30@property (strong, readwrite) id moin1; // expected-note {{property declared here}} 31 32static inline void prototype_observe_moin1(void (^callback)(id)) { // expected-warning {{function definition inside an Objective-C container is deprecated}} 33 (void)^(PrototypeState *prototypeState){ 34 callback(prototypeState.moin1); // expected-error {{use of Objective-C property in function nested in Objective-C container not supported, move function outside its container}} 35 }; 36} 37@end 38