| @import redecl_merge_top; |
| |
| @interface Super |
| @end |
| |
| @interface A : Super |
| - (Super*)init; |
| @end |
| |
| @class B; |
| |
| @protocol P1 |
| - (void)protoMethod1; |
| @end |
| |
| @protocol P1; |
| |
| @protocol P2; |
| |
| @protocol P2; |
| |
| @protocol P2; |
| |
| struct S1; |
| struct S2; |
| |
| void consume_S1(struct S1*); |
| struct S2 *produce_S2(void); |
| |
| // Test declarations in different modules with no common initial |
| // declaration. |
| @class C; |
| C *get_a_C(void); |
| @class C2; |
| C2 *get_a_C2(void); |
| @class C3; |
| C3 *get_a_C3(void); |
| |
| @class C4; |
| @class C4; |
| @class C4; |
| @class C4; |
| C4 *get_a_C4(void); |
| |
| @class Explicit; |
| |
| int *explicit_func(void); |
| |
| struct explicit_struct; |
| |
| @protocol P4, P3; |
| @protocol P3; |
| @protocol P3; |
| @protocol P3; |
| |
| struct S3; |
| struct S4; |
| |
| void consume_S3(struct S3*); |
| struct S4 *produce_S4(void); |
| |
| typedef int T1; |
| typedef double T2; |
| |
| int func0(int); |
| int func1(int); |
| int func1(int); |
| int func1(int x) { return x; } |
| int func1(int); |
| static int func2(int); |
| |
| |
| |
| |
| // Spacing matters! |
| extern int var1; |
| extern int var2; |
| |
| static double var3; |
| |
| int ONE; |
| @import redecl_merge_top.Explicit; |
| const int one = ONE; |
| |
| @interface ClassWithDef |
| - (void)method; |
| @end |
| |
| void eventually_noreturn(void) __attribute__((noreturn)); |
| void eventually_noreturn2(void) __attribute__((noreturn)); |