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