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 Sambucint 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