// RUN: %clang_cc1 -verify -Wno-objc-root-class %s @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