1 | @import redecl_merge_top; |
2 | |
3 | @interface Super |
4 | @end |
5 | |
6 | @interface A : Super |
7 | - (Super*)init; |
8 | @end |
9 | |
10 | @class B; |
11 | |
12 | @protocol P1 |
13 | - (void)protoMethod1; |
14 | @end |
15 | |
16 | @protocol P1; |
17 | |
18 | @protocol P2; |
19 | |
20 | @protocol P2; |
21 | |
22 | @protocol P2; |
23 | |
24 | struct S1; |
25 | struct S2; |
26 | |
27 | void consume_S1(struct S1*); |
28 | struct S2 *produce_S2(void); |
29 | |
30 | // Test declarations in different modules with no common initial |
31 | // declaration. |
32 | @class C; |
33 | C *get_a_C(void); |
34 | @class C2; |
35 | C2 *get_a_C2(void); |
36 | @class C3; |
37 | C3 *get_a_C3(void); |
38 | |
39 | @class C4; |
40 | @class C4; |
41 | @class C4; |
42 | @class C4; |
43 | C4 *get_a_C4(void); |
44 | |
45 | @class Explicit; |
46 | |
47 | int *explicit_func(void); |
48 | |
49 | struct explicit_struct; |
50 | |
51 | @protocol P4, P3; |
52 | @protocol P3; |
53 | @protocol P3; |
54 | @protocol P3; |
55 | |
56 | struct S3; |
57 | struct S4; |
58 | |
59 | void consume_S3(struct S3*); |
60 | struct S4 *produce_S4(void); |
61 | |
62 | typedef int T1; |
63 | typedef double T2; |
64 | |
65 | int func0(int); |
66 | int func1(int); |
67 | int func1(int); |
68 | int func1(int x) { return x; } |
69 | int func1(int); |
70 | static int func2(int); |
71 | |
72 | |
73 | |
74 | |
75 | // Spacing matters! |
76 | extern int var1; |
77 | extern int var2; |
78 | |
79 | static double var3; |
80 | |
81 | int ONE; |
82 | @import redecl_merge_top.Explicit; |
83 | const int one = ONE; |
84 | |
85 | @interface ClassWithDef |
86 | - (void)method; |
87 | @end |
88 | |
89 | void eventually_noreturn(void) __attribute__((noreturn)); |
90 | void eventually_noreturn2(void) __attribute__((noreturn)); |
91 | |