|  | // RUN: %clang_cc1 -fsyntax-only -Wno-objc-root-class -verify %s | 
|  |  | 
|  | @protocol TestProtocol | 
|  | - (void)newProtocolMethod; | 
|  | - (void)deprecatedProtocolMethod __attribute__((deprecated)); // expected-note 2 {{'deprecatedProtocolMethod' has been explicitly marked deprecated here}} | 
|  | @end | 
|  |  | 
|  | @interface NSObject @end | 
|  |  | 
|  | @interface TestClass : NSObject <TestProtocol> | 
|  |  | 
|  | - (void)newInstanceMethod; | 
|  | - (void)deprecatedInstanceMethod __attribute__((deprecated)); // expected-note {{'deprecatedInstanceMethod' has been explicitly marked deprecated here}} | 
|  |  | 
|  | @end | 
|  |  | 
|  | int main(int argc, const char * argv[]) | 
|  | { | 
|  |  | 
|  | TestClass *testObj = (TestClass*)0; | 
|  | [testObj newInstanceMethod]; | 
|  | [testObj deprecatedInstanceMethod]; // expected-warning {{'deprecatedInstanceMethod' is deprecated}} | 
|  |  | 
|  | [testObj newProtocolMethod]; | 
|  | [testObj deprecatedProtocolMethod]; // expected-warning {{'deprecatedProtocolMethod' is deprecated}} | 
|  |  | 
|  | id <TestProtocol> testProto = testObj; | 
|  | [testProto newProtocolMethod]; | 
|  | [testProto deprecatedProtocolMethod]; // expected-warning {{'deprecatedProtocolMethod' is deprecated}} | 
|  | return 0; | 
|  | } |