91 lines
1.2 KiB
C
91 lines
1.2 KiB
C
|
@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));
|