|  | // RUN: %clang_cc1 -verify -Wno-objc-root-class %s | 
|  |  | 
|  | typedef struct objc_class *Class; | 
|  | @interface XX | 
|  |  | 
|  | - (void)addObserver:(XX*)o; // expected-note 2{{passing argument to parameter 'o' here}} | 
|  |  | 
|  | @end | 
|  |  | 
|  | @interface YY | 
|  |  | 
|  | + (void)classMethod; | 
|  |  | 
|  | @end | 
|  |  | 
|  | @implementation YY | 
|  |  | 
|  | static XX *obj; | 
|  |  | 
|  | + (void)classMethod { | 
|  | [obj addObserver:self];     // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}} | 
|  | Class whatever; | 
|  | [obj addObserver:whatever]; // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}} | 
|  | } | 
|  | @end | 
|  |  |