46 lines
		
	
	
		
			784 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			784 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
// RUN: %clang_cc1  -fsyntax-only -Wundeclared-selector -verify -Wno-objc-root-class %s
 | 
						|
 | 
						|
typedef struct objc_selector *SEL;
 | 
						|
 | 
						|
@interface MyClass
 | 
						|
 | 
						|
+ (void) methodA;
 | 
						|
- (void) methodB;
 | 
						|
+ (void) methodD;
 | 
						|
- (void) methodF;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
@implementation MyClass
 | 
						|
 | 
						|
+ (void) methodA {}
 | 
						|
- (void) methodB {}
 | 
						|
+ (void) methodD
 | 
						|
{
 | 
						|
  SEL d = @selector(methodD); /* Ok */
 | 
						|
  SEL e = @selector(methodE);
 | 
						|
}
 | 
						|
 | 
						|
- (void) methodE
 | 
						|
{
 | 
						|
  SEL e = @selector(methodE); /* Ok */
 | 
						|
}
 | 
						|
 | 
						|
- (void) methodF
 | 
						|
{
 | 
						|
  SEL e = @selector(methodE); /* Ok */
 | 
						|
}
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
int main (void)
 | 
						|
{
 | 
						|
  SEL a = @selector(methodA); /* Ok */
 | 
						|
  SEL b = @selector(methodB); /* Ok */
 | 
						|
  SEL c = @selector(methodC);  // expected-warning {{undeclared selector 'methodC'}}
 | 
						|
  SEL d = @selector(methodD); /* Ok */
 | 
						|
  SEL e = @selector(methodE); /* Ok */
 | 
						|
  return 0;
 | 
						|
  
 | 
						|
}
 |