1*0a6a1f1dSLionel Sambuc// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10 -verify %s 2*0a6a1f1dSLionel Sambuc// rdar://16628028 3*0a6a1f1dSLionel Sambuc 4*0a6a1f1dSLionel Sambuc@interface NSObject 5*0a6a1f1dSLionel Sambuc+ (void)initialize; // expected-note 2 {{method 'initialize' declared here}} 6*0a6a1f1dSLionel Sambuc@end 7*0a6a1f1dSLionel Sambuc 8*0a6a1f1dSLionel Sambuc@interface I : NSObject 9*0a6a1f1dSLionel Sambuc+ (void)initialize; // expected-note {{method 'initialize' declared here}} 10*0a6a1f1dSLionel Sambuc+ (void)SomeRandomMethod; 11*0a6a1f1dSLionel Sambuc@end 12*0a6a1f1dSLionel Sambuc 13*0a6a1f1dSLionel Sambuc@implementation I 14*0a6a1f1dSLionel Sambuc- (void) Meth { 15*0a6a1f1dSLionel Sambuc [I initialize]; // expected-warning {{explicit call to +initialize results in duplicate call to +initialize}} 16*0a6a1f1dSLionel Sambuc [NSObject initialize]; // expected-warning {{explicit call to +initialize results in duplicate call to +initialize}} 17*0a6a1f1dSLionel Sambuc} 18*0a6a1f1dSLionel Sambuc+ (void)initialize { 19*0a6a1f1dSLionel Sambuc [super initialize]; 20*0a6a1f1dSLionel Sambuc} 21*0a6a1f1dSLionel Sambuc+ (void)SomeRandomMethod { // expected-note {{method 'SomeRandomMethod' declared here}} 22*0a6a1f1dSLionel Sambuc [super initialize]; // expected-warning {{explicit call to [super initialize] should only be in implementation of +initialize}} 23*0a6a1f1dSLionel Sambuc} 24*0a6a1f1dSLionel Sambuc@end 25*0a6a1f1dSLionel Sambuc 26