26 lines
		
	
	
		
			875 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			875 B
		
	
	
	
		
			Objective-C
		
	
	
	
| // RUN: %clang_cc1  -fsyntax-only  -triple x86_64-apple-darwin10 -verify %s
 | |
| // rdar://16628028
 | |
| 
 | |
| @interface NSObject
 | |
| + (void)initialize; // expected-note 2 {{method 'initialize' declared here}}
 | |
| @end
 | |
| 
 | |
| @interface I : NSObject 
 | |
| + (void)initialize; // expected-note {{method 'initialize' declared here}}
 | |
| + (void)SomeRandomMethod;
 | |
| @end
 | |
| 
 | |
| @implementation I
 | |
| - (void) Meth { 
 | |
|   [I initialize];     // expected-warning {{explicit call to +initialize results in duplicate call to +initialize}} 
 | |
|   [NSObject initialize]; // expected-warning {{explicit call to +initialize results in duplicate call to +initialize}}
 | |
| }
 | |
| + (void)initialize {
 | |
|   [super initialize];
 | |
| }
 | |
| + (void)SomeRandomMethod { // expected-note {{method 'SomeRandomMethod' declared here}}
 | |
|   [super initialize]; // expected-warning {{explicit call to [super initialize] should only be in implementation of +initialize}}
 | |
| }
 | |
| @end
 | |
| 
 |