xref: /minix3/external/bsd/llvm/dist/clang/test/SemaObjC/warn-explicit-call-initialize.m (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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