Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / Modules / Inputs / redecl-merge-left.h
blobd66b4aa7803e39cb56f1ff3588f13a063aec99ee
1 @import redecl_merge_top;
3 @class A;
5 @class A;
7 @interface B
8 + (B*) create_a_B;
9 @end
11 @class A;
13 @protocol P1;
14 @protocol P2
15 - (void)protoMethod2;
16 @end
18 struct S1;
19 struct S2 {
20 int field;
23 struct S1 *produce_S1(void);
24 void consume_S2(struct S2*);
26 // Test declarations in different modules with no common initial
27 // declaration.
28 @class C;
29 void accept_a_C(C*);
31 @class C2;
32 void accept_a_C2(C2*);
34 @class C3;
35 void accept_a_C3(C3*);
36 @class C3;
38 @class C4;
40 @class Explicit;
42 int *explicit_func(void);
44 struct explicit_struct;
46 @protocol P3, P4;
48 @protocol P3;
50 struct S3;
51 struct S3;
52 struct S4 {
53 int field;
56 struct S3 *produce_S3(void);
57 void consume_S4(struct S4*);
59 typedef int T1;
60 typedef float T2;
62 int func0(int);
63 int func1(int x) { return x; }
64 int func2(int);
75 // Spacing matters!
76 extern int var1;
77 extern float var2;
79 extern double var3;
81 // Make sure this doesn't introduce an ambiguity-creating 'id' at the
82 // top level.
83 typedef void funcptr_with_id(int id);
85 // A class that is declared in the 'bottom' module, then loaded from
86 // one of the modules it depends on.
87 @interface DeclaredThenLoaded
88 - declaredThenLoadedMethod;
89 @end
91 @class DeclaredThenLoaded;
93 void eventually_noreturn2(void);