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