[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / Inputs / module.modulemap
blob47f6c5c1010d7daf2940457f2b4b5a5bc4560172
1 module c_library [extern_c] { module inner { header "c-header.h" } }
2 module cxx_library { header "cxx-header.h" requires cplusplus }
3 module c_library_bad [extern_c] { header "c-header-bad.h" }
4 module diamond_top { header "diamond_top.h" }
5 module diamond_left { 
6   header "diamond_left.h" 
7   export diamond_top
9 module diamond_right { 
10   header "diamond_right.h" 
11   export diamond_top
13 module diamond_bottom { 
14   header "diamond_bottom.h" 
15   export *
17 module irgen { header "irgen.h" }
18 module cxx_irgen_top { header "cxx-irgen-top.h" }
19 module cxx_irgen_left { header "cxx-irgen-left.h" }
20 module cxx_irgen_right { header "cxx-irgen-right.h" }
21 module lookup_left_objc { header "lookup_left.h" }
22 module lookup_right_objc { header "lookup_right.h" }
23 module lookup_left_cxx { header "lookup_left.hpp" }
24 module lookup_right_cxx { header "lookup_right.hpp" }
25 module module_private_left { header "module_private_left.h" }
26 module module_private_right { header "module_private_right.h" }
27 module 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" }
32 module macros_left { 
33   header "macros_left.h" 
34   export *
36 module macros_right { 
37   header "macros_right.h" 
38   export *
39   explicit module undef {
40     header "macros_right_undef.h"
41   }
43 module macros_bottom { 
44   header "macros_bottom.h" 
45   export *
47 module macros { header "macros.h" }
48 module macros_other { header "macros_other.h" }
49 module category_top { header "category_top.h" }
50 module category_left { 
51   header "category_left.h" 
52   export category_top
54   explicit module sub {
55     header "category_left_sub.h"
56   }
58 module category_right { 
59   header "category_right.h" 
60   export category_top
62   explicit module sub {
63     header "category_right_sub.h"
64   }
66 module category_bottom { 
67   header "category_bottom.h" 
68   export category_left
69   export category_right
71 module category_other { header "category_other.h" }
72 module redeclarations_left { header "redeclarations_left.h" }
73 module redeclarations_right { header "redeclarations_right.h" }
74 module redecl_namespaces_left { header "redecl_namespaces_left.h" }
75 module redecl_namespaces_right { header "redecl_namespaces_right.h" }
76 module redecl_add_after_load_top { header "redecl-add-after-load-top.h" }
77 module redecl_add_after_load_decls { header "redecl-add-after-load-decls.h" }
78 module redecl_add_after_load { header "redecl-add-after-load.h" }
79 module load_failure { header "load_failure.h" }
81 module decldef {
82   explicit module Decl { header "decl.h" }
83   explicit module Decl2 { header "decl2.h" }
84   explicit module Def { header "def.h" }
87 module redecl_merge_top { 
88   header "redecl-merge-top.h"
89   explicit module Explicit { header "redecl-merge-top-explicit.h" }
90   exclude header "nonexistent.h"
92 module redecl_merge_left { 
93   header "redecl-merge-left.h" 
94   export *
96 module redecl_merge_left_left { 
97   header "redecl-merge-left-left.h" 
98   export *
100 module redecl_merge_right { 
101   header "redecl-merge-right.h" 
102   export *
104 module redecl_merge_bottom { 
105   explicit module prefix {
106     header "redecl-merge-bottom-prefix.h"
107   }
109   header "redecl-merge-bottom.h" 
110   export *
112 module namespaces_top { 
113   header "namespaces-top.h"
114   export *
116 module namespaces_left { 
117   header "namespaces-left.h"
118   export *
120 module namespaces_right { 
121   header "namespaces-right.h"
122   export *
124 module templates_top { 
125   header "templates-top.h"
126   export *
128 module templates_left { 
129   header "templates-left.h"
130   export *
132 module templates_right { 
133   header "templates-right.h"
134   export *
136 module MethodPoolA {
137   header "MethodPoolA.h"
139   explicit module Sub2 {
140     header "MethodPoolASub2.h"
141   }
143   explicit module Sub {
144     header "MethodPoolASub.h"
145   }
147 module MethodPoolB {
148   header "MethodPoolB.h"
150   explicit module Sub2 {
151     header "MethodPoolBSub2.h"
152   }
154   explicit module Sub {
155     header "MethodPoolBSub.h"
156   }
158 module import_decl {
159   header "import-decl.h"
162 framework module * { 
163   exclude NotAModule
166 module linkage_merge_left {
167   explicit module sub {
168     header "linkage-merge-sub.h"
169   }
172 module autolink {
173   header "autolink.h"
174   link "autolink"
176   explicit module sub {
177     header "autolink-sub.h"
178     link "autolink_sub"
179   }
181   explicit module sub2 {
182     header "autolink-sub2.h"
183     link framework "autolink_framework"
184   }
186   explicit module sub3 {
187     header "autolink-sub3.h"
188     link "autolink_from_pch"
189   }
192 module weird_objc {
193   header "weird_objc.h"
196 module objc_type_param {
197   header "objc_type_param.h"
200 module ignored_macros {
201   header "ignored_macros.h"
204 module cxx_many_overloads {
205   header "cxx-many-overloads.h"
208 module cxx_inline_namespace {
209   header "cxx-inline-namespace.h"
212 module cxx_inline_namespace_b {
213   header "cxx-inline-namespace-b.h"
216 module cxx_linkage_cache {
217   header "cxx-linkage-cache.h"
220 module cxx_templates_common {
221   header "cxx-templates-common.h"
223   explicit module unimported { header "cxx-templates-unimported.h" }
226 module cxx_templates_a {
227   header "cxx-templates-a.h"
230 module cxx_templates_b_impl {
231   header "cxx-templates-b-impl.h"
234 module cxx_templates_b {
235   header "cxx-templates-b.h"
238 module cxx_templates_c {
239   header "cxx-templates-c.h"
242 module cxx_templates_d {
243   header "cxx-templates-d.h"
246 module cxx_decls {
247   module unimported {
248     header "cxx-decls-unimported.h"
249   }
250   module imported {
251     header "cxx-decls-imported.h"
252   }
255 module cxx_decls_premerged {
256   header "cxx-decls-premerged.h"
259 module cxx_decls_merged {
260   header "cxx-decls-merged.h"
263 module diag_flags {
264   header "diag_flags.h"
267 module diag_pragma {
268   header "diag_pragma.h"
271 module pragma_pack {
272   module set { header "pragma_pack_set.h" }
273   module empty { header "empty.h" }
276 module dummy {
277   header "dummy.h"
280 module builtin {
281   header "builtin.h"
282   explicit module sub {
283     header "builtin_sub.h"
284   }
287 module linkage_merge {
288   explicit module foo {
289     header "linkage-merge-foo.h"
290   }
291   explicit module bar {
292     header "linkage-merge-bar.h"
293   }
297 module incomplete_mod {
298   header "incomplete_mod.h"
301 module warning {
302   header "warning.h"
305 module warn_unused_local_typedef {
306   header "warn-unused-local-typedef.h"
309 module using_decl {
310   module a { header "using-decl-a.h" export * }
311   module b { header "using-decl-b.h" export * }
314 module recursive_visibility_a1 {
315   module inner { header "recursive_visibility_a1_inner.h" }
317 module recursive_visibility_a2 {
318   module inner {
319     module more_inner {
320       header "recursive_visibility_a2_more_inner.h"
321     }
322   }
324 module recursive_visibility_b {
325   header "recursive_visibility_b.h"
326   export *
328 module recursive_visibility_c {
329   header "recursive_visibility_c.h"
331 module recursive1 {
332   header "recursive1.h"
334 module recursive2 {
335   header "recursive2.h"
337 module crash {
338   header "crash.h"
341 module DebugCXX {
342   header "DebugCXX.h"
345 module DebugObjC {
346   header "DebugObjC.h"
349 module DebugObjCImport {
350   module SubModule {
351     header "DebugObjCImport.h"
352   }
355 module DebugDwoId {
356   header "DebugDwoId.h"
359 module ImportNameInDir {
360   header "ImportNameInDir.h"
361   export *
364 module RequiresWithMissingHeader {
365   module HeaderBefore {
366     header "RequiresWithMissingHeader-Missing1.h"
367     requires missing
368   }
369   module HeaderAfter {
370     requires missing
371     header "RequiresWithMissingHeader-Missing2.h"
372   }
375 module TargetFeatures {
376   module arm {
377     requires arm
378     module aarch32 { requires aarch32 }
379     module aarch64 { requires aarch64 }
380   }
381   module x86 {
382     requires x86
383     module x86_32 { requires x86_32 }
384     module x86_64 { requires x86_64 }
385   }
386   module riscv {
387     requires riscv
388     module riscv32 { requires riscv32 }
389     module riscv64 { requires riscv64 }
390   }
393 module DebugSubmodules {
394   module DebugSubmoduleA {
395     header "DebugSubmoduleA.h"
396     export *
397   }
398   module DebugSubmoduleB {
399     header "DebugSubmoduleB.h"
400     export *
401   }
404 module ExtensionTestA {
405   header "ExtensionTestA.h"
408 module TypedefTag {
409   header "typedef-tag.h"
410   explicit module Hidden {
411     header "typedef-tag-hidden.h"
412   }
415 module ElaboratedTypeStructs {
416   module Empty {}
417   module Structs {
418     header "elaborated-type-structs.h"
419   }
422 // We import a module, then declare a method with selector stringValue in
423 // MethodPoolCombined1.h. In MethodPoolCombined2.h, we import another module
424 // that also contains a method for selector stringValue. We make sure that
425 // the method pool entry for stringValue in this module is complete.
426 module MethodPoolCombined {
427   header "MethodPoolCombined1.h"
428   header "MethodPoolCombined2.h"
431 module MethodPoolString1 {
432   header "MethodPoolString1.h"
435 module MethodPoolString2 {
436   header "MethodPoolString2.h"
439 module Empty {}
441 module MacroFabs1 {
442   header "MacroFabs1.h"
445 module DiagOutOfDate {
446   header "DiagOutOfDate.h"
449 module DebugNestedA {
450   header "DebugNestedA.h"
451   export *
454 module DebugNestedB {
455   header "DebugNestedB.h"
456   export *
459 module objcAtKeywordMissingEnd {
460   header "objcAtKeywordMissingEnd.h"
463 module innerstructredef {
464   module one {
465     header "empty.h"
466   }
467   module two {
468    header "innerstructredef.h"
469   }
472 module template_nontrivial0 {
473   header "template-nontrivial0.h"
474   export *
477 module template_nontrivial1 {
478   header "template-nontrivial1.h"
479   export *