1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -verify -Wno-objc-root-class %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuctypedef struct objc_class *Class; 4*f4a2713aSLionel Sambuc@interface XX 5*f4a2713aSLionel Sambuc 6*f4a2713aSLionel Sambuc- (void)addObserver:(XX*)o; // expected-note 2{{passing argument to parameter 'o' here}} 7*f4a2713aSLionel Sambuc 8*f4a2713aSLionel Sambuc@end 9*f4a2713aSLionel Sambuc 10*f4a2713aSLionel Sambuc@interface YY 11*f4a2713aSLionel Sambuc 12*f4a2713aSLionel Sambuc+ (void)classMethod; 13*f4a2713aSLionel Sambuc 14*f4a2713aSLionel Sambuc@end 15*f4a2713aSLionel Sambuc 16*f4a2713aSLionel Sambuc@implementation YY 17*f4a2713aSLionel Sambuc 18*f4a2713aSLionel Sambucstatic XX *obj; 19*f4a2713aSLionel Sambuc 20*f4a2713aSLionel Sambuc+ (void)classMethod { 21*f4a2713aSLionel Sambuc [obj addObserver:self]; // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}} 22*f4a2713aSLionel Sambuc Class whatever; 23*f4a2713aSLionel Sambuc [obj addObserver:whatever]; // expected-warning {{incompatible pointer types sending 'Class' to parameter of type 'XX *'}} 24*f4a2713aSLionel Sambuc} 25*f4a2713aSLionel Sambuc@end 26*f4a2713aSLionel Sambuc 27