1module diamond_top { header "diamond_top.h" }
2module diamond_left {
3  header "diamond_left.h"
4  export diamond_top
5}
6module diamond_right {
7  header "diamond_right.h"
8  export diamond_top
9}
10module diamond_bottom {
11  header "diamond_bottom.h"
12  export *
13}
14module irgen { header "irgen.h" }
15module lookup_left_objc { header "lookup_left.h" }
16module lookup_right_objc { header "lookup_right.h" }
17module lookup_left_cxx { header "lookup_left.hpp" }
18module lookup_right_cxx { header "lookup_right.hpp" }
19module module_private_left { header "module_private_left.h" }
20module module_private_right { header "module_private_right.h" }
21module macros_top {
22  header "macros_top.h"
23}
24module macros_left {
25  header "macros_left.h"
26  export *
27}
28module macros_right {
29  header "macros_right.h"
30  export *
31  explicit module undef {
32    header "macros_right_undef.h"
33  }
34}
35module macros { header "macros.h" }
36module category_top { header "category_top.h" }
37module category_left {
38  header "category_left.h"
39  export category_top
40
41  explicit module sub {
42    header "category_left_sub.h"
43  }
44}
45module category_right {
46  header "category_right.h"
47  export category_top
48
49  explicit module sub {
50    header "category_right_sub.h"
51  }
52}
53module category_bottom {
54  header "category_bottom.h"
55  export category_left
56  export category_right
57}
58module category_other { header "category_other.h" }
59module redeclarations_left { header "redeclarations_left.h" }
60module redeclarations_right { header "redeclarations_right.h" }
61module redecl_namespaces_left { header "redecl_namespaces_left.h" }
62module redecl_namespaces_right { header "redecl_namespaces_right.h" }
63module load_failure { header "load_failure.h" }
64
65module decldef {
66  explicit module Decl { header "decl.h" }
67  explicit module Decl2 { header "decl2.h" }
68  explicit module Def { header "def.h" }
69}
70
71module redecl_merge_top {
72  header "redecl-merge-top.h"
73  explicit module Explicit { header "redecl-merge-top-explicit.h" }
74  exclude header "nonexistent.h"
75}
76module redecl_merge_left {
77  header "redecl-merge-left.h"
78  export *
79}
80module redecl_merge_left_left {
81  header "redecl-merge-left-left.h"
82  export *
83}
84module redecl_merge_right {
85  header "redecl-merge-right.h"
86  export *
87}
88module redecl_merge_bottom {
89  explicit module prefix {
90    header "redecl-merge-bottom-prefix.h"
91  }
92
93  header "redecl-merge-bottom.h"
94  export *
95}
96module namespaces_top {
97  header "namespaces-top.h"
98  export *
99}
100module namespaces_left {
101  header "namespaces-left.h"
102  export *
103}
104module namespaces_right {
105  header "namespaces-right.h"
106  export *
107}
108module templates_top {
109  header "templates-top.h"
110  export *
111}
112module templates_left {
113  header "templates-left.h"
114  export *
115}
116module templates_right {
117  header "templates-right.h"
118  export *
119}
120module MethodPoolA {
121  header "MethodPoolA.h"
122
123  explicit module Sub2 {
124    header "MethodPoolASub2.h"
125  }
126
127  explicit module Sub {
128    header "MethodPoolASub.h"
129  }
130}
131module MethodPoolB {
132  header "MethodPoolB.h"
133
134  explicit module Sub2 {
135    header "MethodPoolBSub2.h"
136  }
137
138  explicit module Sub {
139    header "MethodPoolBSub.h"
140  }
141}
142module import_decl {
143  header "import-decl.h"
144}
145
146framework module * {
147  exclude NotAModule
148}
149
150module linkage_merge_left {
151  explicit module sub {
152    header "linkage-merge-sub.h"
153  }
154}
155
156module autolink {
157  header "autolink.h"
158  link "autolink"
159
160  explicit module sub {
161    header "autolink-sub.h"
162    link "autolink_sub"
163  }
164
165  explicit module sub2 {
166    header "autolink-sub2.h"
167    link framework "autolink_framework"
168  }
169}
170
171module weird_objc {
172  header "weird_objc.h"
173}
174
175module ignored_macros {
176  header "ignored_macros.h"
177}
178
179module cxx_many_overloads {
180  header "cxx-many-overloads.h"
181}
182
183module cxx_inline_namespace {
184  header "cxx-inline-namespace.h"
185}
186
187module cxx_linkage_cache {
188  header "cxx-linkage-cache.h"
189}
190
191module cxx_templates_common {
192  header "cxx-templates-common.h"
193}
194
195module cxx_templates_a {
196  header "cxx-templates-a.h"
197}
198
199module cxx_templates_b_impl {
200  header "cxx-templates-b-impl.h"
201}
202
203module cxx_templates_b {
204  header "cxx-templates-b.h"
205}
206
207module cxx_templates_c {
208  header "cxx-templates-c.h"
209}
210
211module cxx_decls {
212  module unimported {
213    header "cxx-decls-unimported.h"
214  }
215  module imported {
216    header "cxx-decls-imported.h"
217  }
218}
219
220module config {
221  header "config.h"
222  config_macros [exhaustive] WANT_FOO, WANT_BAR
223}
224
225module diag_pragma {
226  header "diag_pragma.h"
227}
228
229module dummy {
230  header "dummy.h"
231}
232
233module builtin {
234  header "builtin.h"
235  explicit module sub {
236    header "builtin_sub.h"
237  }
238}
239
240module linkage_merge {
241  explicit module foo {
242    header "linkage-merge-foo.h"
243  }
244  explicit module bar {
245    header "linkage-merge-bar.h"
246  }
247
248}
249
250module incomplete_mod {
251  header "incomplete_mod.h"
252}
253
254module warning {
255  header "warning.h"
256}
257
258module initializer_list {
259  header "initializer_list"
260}
261
262module using_decl {
263  module a { header "using-decl-a.h" export * }
264  module b { header "using-decl-b.h" export * }
265}
266
267module recursive_visibility_a1 {
268  module inner { header "recursive_visibility_a1_inner.h" }
269}
270module recursive_visibility_a2 {
271  module inner {
272    module more_inner {
273      header "recursive_visibility_a2_more_inner.h"
274    }
275  }
276}
277module recursive_visibility_b {
278  header "recursive_visibility_b.h"
279  export *
280}
281module recursive_visibility_c {
282  header "recursive_visibility_c.h"
283}
284