warn-explicit-call-initialize.m
875 Bytes
// 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