blob: 86a3993bc47ce36c1351c55823b45bf27a662735 [file] [log] [blame]
Douglas Gregor5948ae12012-01-03 18:04:46 +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);
68int func1(int);
69int 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 Gregorf63b0a52011-12-19 18:19:24 +000081#ifdef __cplusplus
82template<typename T> class Vector {
83public:
84 void push_back(const T&);
85};
86#endif
Douglas Gregor1d4c1132011-12-20 22:06:13 +000087
88int ONE;
Douglas Gregor5948ae12012-01-03 18:04:46 +000089@import redecl_merge_top.Explicit;
Douglas Gregor1d4c1132011-12-20 22:06:13 +000090const int one = ONE;