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 redecl_add_after_load_top { header "redecl-add-after-load-top.h" }
73module redecl_add_after_load_decls { header "redecl-add-after-load-decls.h" }
74module redecl_add_after_load { header "redecl-add-after-load.h" }
75module load_failure { header "load_failure.h" }
76
77module decldef {
78  explicit module Decl { header "decl.h" }
79  explicit module Decl2 { header "decl2.h" }
80  explicit module Def { header "def.h" }
81}
82
83module redecl_merge_top {
84  header "redecl-merge-top.h"
85  explicit module Explicit { header "redecl-merge-top-explicit.h" }
86  exclude header "nonexistent.h"
87}
88module redecl_merge_left {
89  header "redecl-merge-left.h"
90  export *
91}
92module redecl_merge_left_left {
93  header "redecl-merge-left-left.h"
94  export *
95}
96module redecl_merge_right {
97  header "redecl-merge-right.h"
98  export *
99}
100module redecl_merge_bottom {
101  explicit module prefix {
102    header "redecl-merge-bottom-prefix.h"
103  }
104
105  header "redecl-merge-bottom.h"
106  export *
107}
108module namespaces_top {
109  header "namespaces-top.h"
110  export *
111}
112module namespaces_left {
113  header "namespaces-left.h"
114  export *
115}
116module namespaces_right {
117  header "namespaces-right.h"
118  export *
119}
120module templates_top {
121  header "templates-top.h"
122  export *
123}
124module templates_left {
125  header "templates-left.h"
126  export *
127}
128module templates_right {
129  header "templates-right.h"
130  export *
131}
132module MethodPoolA {
133  header "MethodPoolA.h"
134
135  explicit module Sub2 {
136    header "MethodPoolASub2.h"
137  }
138
139  explicit module Sub {
140    header "MethodPoolASub.h"
141  }
142}
143module MethodPoolB {
144  header "MethodPoolB.h"
145
146  explicit module Sub2 {
147    header "MethodPoolBSub2.h"
148  }
149
150  explicit module Sub {
151    header "MethodPoolBSub.h"
152  }
153}
154module import_decl {
155  header "import-decl.h"
156}
157
158framework module * {
159  exclude NotAModule
160}
161
162module linkage_merge_left {
163  explicit module sub {
164    header "linkage-merge-sub.h"
165  }
166}
167
168module autolink {
169  header "autolink.h"
170  link "autolink"
171
172  explicit module sub {
173    header "autolink-sub.h"
174    link "autolink_sub"
175  }
176
177  explicit module sub2 {
178    header "autolink-sub2.h"
179    link framework "autolink_framework"
180  }
181
182  explicit module sub3 {
183    header "autolink-sub3.h"
184    link "autolink_from_pch"
185  }
186}
187
188module weird_objc {
189  header "weird_objc.h"
190}
191
192module ignored_macros {
193  header "ignored_macros.h"
194}
195
196module cxx_many_overloads {
197  header "cxx-many-overloads.h"
198}
199
200module cxx_inline_namespace {
201  header "cxx-inline-namespace.h"
202}
203
204module cxx_inline_namespace_b {
205  header "cxx-inline-namespace-b.h"
206}
207
208module cxx_linkage_cache {
209  header "cxx-linkage-cache.h"
210}
211
212module cxx_templates_common {
213  header "cxx-templates-common.h"
214}
215
216module cxx_templates_a {
217  header "cxx-templates-a.h"
218}
219
220module cxx_templates_b_impl {
221  header "cxx-templates-b-impl.h"
222}
223
224module cxx_templates_b {
225  header "cxx-templates-b.h"
226}
227
228module cxx_templates_c {
229  header "cxx-templates-c.h"
230}
231
232module cxx_decls {
233  module unimported {
234    header "cxx-decls-unimported.h"
235  }
236  module imported {
237    header "cxx-decls-imported.h"
238  }
239}
240
241module config {
242  header "config.h"
243  config_macros [exhaustive] WANT_FOO, WANT_BAR
244}
245
246module diag_pragma {
247  header "diag_pragma.h"
248}
249
250module dummy {
251  header "dummy.h"
252}
253
254module builtin {
255  header "builtin.h"
256  explicit module sub {
257    header "builtin_sub.h"
258  }
259}
260
261module linkage_merge {
262  explicit module foo {
263    header "linkage-merge-foo.h"
264  }
265  explicit module bar {
266    header "linkage-merge-bar.h"
267  }
268
269}
270
271module incomplete_mod {
272  header "incomplete_mod.h"
273}
274
275module warning {
276  header "warning.h"
277}
278
279module initializer_list {
280  header "initializer_list"
281}
282
283module using_decl {
284  module a { header "using-decl-a.h" export * }
285  module b { header "using-decl-b.h" export * }
286}
287
288module recursive_visibility_a1 {
289  module inner { header "recursive_visibility_a1_inner.h" }
290}
291module recursive_visibility_a2 {
292  module inner {
293    module more_inner {
294      header "recursive_visibility_a2_more_inner.h"
295    }
296  }
297}
298module recursive_visibility_b {
299  header "recursive_visibility_b.h"
300  export *
301}
302module recursive_visibility_c {
303  header "recursive_visibility_c.h"
304}
305module recursive1 {
306  header "recursive1.h"
307}
308module recursive2 {
309  header "recursive2.h"
310}
311