brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · d66b4aa Raw
94 lines · c
1@import redecl_merge_top;2 3@class A;4 5@class A;6 7@interface B8+ (B*) create_a_B;9@end10 11@class A;12 13@protocol P1;14@protocol P215- (void)protoMethod2;16@end17 18struct S1;19struct S2 {20  int field;21};22 23struct S1 *produce_S1(void);24void consume_S2(struct S2*);25 26// Test declarations in different modules with no common initial27// declaration.28@class C;29void accept_a_C(C*);30 31@class C2;32void accept_a_C2(C2*);33 34@class C3;35void accept_a_C3(C3*);36@class C3;37 38@class C4;39 40@class Explicit;41 42int *explicit_func(void);43 44struct explicit_struct;45 46@protocol P3, P4;47 48@protocol P3;49 50struct S3;51struct S3;52struct S4 {53  int field;54};55 56struct S3 *produce_S3(void);57void consume_S4(struct S4*);58 59typedef int T1;60typedef float T2;61 62int func0(int);63int func1(int x) { return x; }64int func2(int);65 66 67 68 69 70 71 72 73 74 75// Spacing matters!76extern int var1;77extern float var2;78 79extern double var3;80 81// Make sure this doesn't introduce an ambiguity-creating 'id' at the82// top level.83typedef void funcptr_with_id(int id);84 85// A class that is declared in the 'bottom' module, then loaded from86// one of the modules it depends on.87@interface DeclaredThenLoaded88- declaredThenLoadedMethod;89@end90 91@class DeclaredThenLoaded;92 93void eventually_noreturn2(void);94