27 lines
		
	
	
		
			575 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			575 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
// 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
 | 
						|
 |