150
|
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));
|