1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -Wno-objc-root-class -verify %s 2*67e74705SXin Li// rdar://11618852 3*67e74705SXin Li 4*67e74705SXin Li@protocol TestProtocol 5*67e74705SXin Li- (void)newProtocolMethod; 6*67e74705SXin Li- (void)deprecatedProtocolMethod __attribute__((deprecated)); // expected-note 2 {{'deprecatedProtocolMethod' has been explicitly marked deprecated here}} 7*67e74705SXin Li@end 8*67e74705SXin Li 9*67e74705SXin Li@interface NSObject @end 10*67e74705SXin Li 11*67e74705SXin Li@interface TestClass : NSObject <TestProtocol> 12*67e74705SXin Li 13*67e74705SXin Li- (void)newInstanceMethod; 14*67e74705SXin Li- (void)deprecatedInstanceMethod __attribute__((deprecated)); // expected-note {{'deprecatedInstanceMethod' has been explicitly marked deprecated here}} 15*67e74705SXin Li 16*67e74705SXin Li@end 17*67e74705SXin Li 18*67e74705SXin Liint main(int argc, const char * argv[]) 19*67e74705SXin Li{ 20*67e74705SXin Li 21*67e74705SXin Li TestClass *testObj = (TestClass*)0; 22*67e74705SXin Li [testObj newInstanceMethod]; 23*67e74705SXin Li [testObj deprecatedInstanceMethod]; // expected-warning {{'deprecatedInstanceMethod' is deprecated}} 24*67e74705SXin Li 25*67e74705SXin Li [testObj newProtocolMethod]; 26*67e74705SXin Li [testObj deprecatedProtocolMethod]; // expected-warning {{'deprecatedProtocolMethod' is deprecated}} 27*67e74705SXin Li 28*67e74705SXin Li id <TestProtocol> testProto = testObj; 29*67e74705SXin Li [testProto newProtocolMethod]; 30*67e74705SXin Li [testProto deprecatedProtocolMethod]; // expected-warning {{'deprecatedProtocolMethod' is deprecated}} 31*67e74705SXin Li return 0; 32*67e74705SXin Li} 33