blob: b664ae9a720499f5d0d4c6e9872e3ea372053040 [file] [log] [blame]
Douglas Gregor1b257af2012-12-11 22:11:52 +00001@import redecl_merge_top;
Douglas Gregora1be2782011-12-17 23:38:30 +00002
3@interface Super
4@end
5
6@interface A : Super
7- (Super*)init;
8@end
9
Douglas Gregorecb19382011-12-19 15:27:36 +000010@class B;
11
Douglas Gregor27c6da22012-01-01 20:30:41 +000012@protocol P1
13- (void)protoMethod1;
14@end
15
16@protocol P1;
17
18@protocol P2;
19
20@protocol P2;
21
22@protocol P2;
23
Douglas Gregor1ca4a5c2012-01-03 22:46:00 +000024struct S1;
25struct S2;
26
27void consume_S1(struct S1*);
28struct S2 *produce_S2(void);
29
Douglas Gregor0f753232011-12-22 01:48:48 +000030// Test declarations in different modules with no common initial
31// declaration.
32@class C;
33C *get_a_C(void);
34@class C2;
35C2 *get_a_C2(void);
36@class C3;
37C3 *get_a_C3(void);
38
Douglas Gregorcce54aa2011-12-22 19:44:59 +000039@class C4;
40@class C4;
41@class C4;
42@class C4;
43C4 *get_a_C4(void);
44
Douglas Gregor2ccd89c2011-12-20 18:11:52 +000045@class Explicit;
46
47int *explicit_func(void);
48
49struct explicit_struct;
50
Douglas Gregordba93612012-01-01 21:47:52 +000051@protocol P4, P3;
52@protocol P3;
53@protocol P3;
54@protocol P3;
55
Douglas Gregor1ca4a5c2012-01-03 22:46:00 +000056struct S3;
57struct S4;
58
59void consume_S3(struct S3*);
60struct S4 *produce_S4(void);
61
Douglas Gregor7a537402012-01-03 23:26:26 +000062typedef int T1;
63typedef double T2;
64
Douglas Gregor70762812012-01-04 17:13:46 +000065int func0(int);
66int func1(int);
67int func1(int);
Douglas Gregor5456b0fe2012-10-09 17:21:28 +000068int func1(int x) { return x; }
Douglas Gregor70762812012-01-04 17:13:46 +000069int func1(int);
70static int func2(int);
71
Douglas Gregor4791fa22012-01-04 17:21:36 +000072
73
74
75// Spacing matters!
76extern int var1;
77extern int var2;
78
79static double var3;
80
Douglas Gregor1d4c1132011-12-20 22:06:13 +000081int ONE;
Douglas Gregor1b257af2012-12-11 22:11:52 +000082@import redecl_merge_top.Explicit;
Douglas Gregor1d4c1132011-12-20 22:06:13 +000083const int one = ONE;
Douglas Gregorcc32b442012-01-15 18:08:05 +000084
85@interface ClassWithDef
86- (void)method;
87@end