blob: 0c2594cc226ae6f6dd59e9caddc0ccc2264657f2 [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Fariborz Jahanian4b6df3f2007-10-04 00:22:33 +00002
Fariborz Jahanian1d5b0e32007-09-20 17:54:07 +00003@class SUPER, Y;
4
5@interface INTF :SUPER // expected-error {{cannot find interface declaration for 'SUPER', superclass of 'INTF'}}
6@end
7
8@interface SUPER @end
9
Chris Lattnerb8b96af2008-11-23 22:46:27 +000010@interface INTF1 : SUPER // expected-note {{previous definition is here}}
Fariborz Jahanian1d5b0e32007-09-20 17:54:07 +000011@end
12
13@interface INTF2 : INTF1
14@end
15
Douglas Gregora6f26382010-01-06 23:44:25 +000016@interface INTF3 : Y // expected-error {{cannot find interface declaration for 'Y', superclass of 'INTF3'}} \
17 // expected-note{{'INTF3' declared here}}
Fariborz Jahanian1d5b0e32007-09-20 17:54:07 +000018@end
19
Chris Lattnerb8b96af2008-11-23 22:46:27 +000020@interface INTF1 // expected-error {{duplicate interface definition for class 'INTF1'}}
Fariborz Jahanian1d5b0e32007-09-20 17:54:07 +000021@end
Steve Naroff95110962008-03-28 21:37:05 +000022
23@implementation SUPER
24- (void)dealloc {
25 [super dealloc]; // expected-error {{no super class declared in @interface for 'SUPER'}}
26}
27@end
Fariborz Jahanianfdee0892009-07-09 22:08:26 +000028
29@interface RecursiveClass : RecursiveClass // expected-error {{trying to recursively use 'RecursiveClass' as superclass of 'RecursiveClass'}}
30@end
31
32@implementation RecursiveClass
33@end
34
Douglas Gregor95ff7422010-01-04 17:27:12 +000035@implementation iNTF3 // expected-warning{{cannot find interface declaration for 'iNTF3'; did you mean 'INTF3'?}}
36@end