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