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 8 } 9 module diamond_right { 10 header "diamond_right.h" 11 export diamond_top 12 } 13 module diamond_bottom { 14 header "diamond_bottom.h" 15 export * 16 } 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" } 31 } 32 module macros_left { 33 header "macros_left.h" 34 export * 35 } 36 module macros_right { 37 header "macros_right.h" 38 export * 39 explicit module undef { 40 header "macros_right_undef.h" 41 } 42 } 43 module macros_bottom { 44 header "macros_bottom.h" 45 export * 46 } 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 53 54 explicit module sub { 55 header "category_left_sub.h" 56 } 57 } 58 module category_right { 59 header "category_right.h" 60 export category_top 61 62 explicit module sub { 63 header "category_right_sub.h" 64 } 65 } 66 module category_bottom { 67 header "category_bottom.h" 68 export category_left 69 export category_right 70 } 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" } 80 81 module decldef { 82 explicit module Decl { header "decl.h" } 83 explicit module Decl2 { header "decl2.h" } 84 explicit module Def { header "def.h" } 85 } 86 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" 91 } 92 module redecl_merge_left { 93 header "redecl-merge-left.h" 94 export * 95 } 96 module redecl_merge_left_left { 97 header "redecl-merge-left-left.h" 98 export * 99 } 100 module redecl_merge_right { 101 header "redecl-merge-right.h" 102 export * 103 } 104 module redecl_merge_bottom { 105 explicit module prefix { 106 header "redecl-merge-bottom-prefix.h" 107 } 108 109 header "redecl-merge-bottom.h" 110 export * 111 } 112 module namespaces_top { 113 header "namespaces-top.h" 114 export * 115 } 116 module namespaces_left { 117 header "namespaces-left.h" 118 export * 119 } 120 module namespaces_right { 121 header "namespaces-right.h" 122 export * 123 } 124 module templates_top { 125 header "templates-top.h" 126 export * 127 } 128 module templates_left { 129 header "templates-left.h" 130 export * 131 } 132 module templates_right { 133 header "templates-right.h" 134 export * 135 } 136 module MethodPoolA { 137 header "MethodPoolA.h" 138 139 explicit module Sub2 { 140 header "MethodPoolASub2.h" 141 } 142 143 explicit module Sub { 144 header "MethodPoolASub.h" 145 } 146 } 147 module MethodPoolB { 148 header "MethodPoolB.h" 149 150 explicit module Sub2 { 151 header "MethodPoolBSub2.h" 152 } 153 154 explicit module Sub { 155 header "MethodPoolBSub.h" 156 } 157 } 158 module import_decl { 159 header "import-decl.h" 160 } 161 162 framework module * { 163 exclude NotAModule 164 } 165 166 module linkage_merge_left { 167 explicit module sub { 168 header "linkage-merge-sub.h" 169 } 170 } 171 172 module autolink { 173 header "autolink.h" 174 link "autolink" 175 176 explicit module sub { 177 header "autolink-sub.h" 178 link "autolink_sub" 179 } 180 181 explicit module sub2 { 182 header "autolink-sub2.h" 183 link framework "autolink_framework" 184 } 185 186 explicit module sub3 { 187 header "autolink-sub3.h" 188 link "autolink_from_pch" 189 } 190 } 191 192 module weird_objc { 193 header "weird_objc.h" 194 } 195 196 module ignored_macros { 197 header "ignored_macros.h" 198 } 199 200 module cxx_many_overloads { 201 header "cxx-many-overloads.h" 202 } 203 204 module cxx_inline_namespace { 205 header "cxx-inline-namespace.h" 206 } 207 208 module cxx_inline_namespace_b { 209 header "cxx-inline-namespace-b.h" 210 } 211 212 module cxx_linkage_cache { 213 header "cxx-linkage-cache.h" 214 } 215 216 module cxx_templates_common { 217 header "cxx-templates-common.h" 218 219 explicit module unimported { header "cxx-templates-unimported.h" } 220 } 221 222 module cxx_templates_a { 223 header "cxx-templates-a.h" 224 } 225 226 module cxx_templates_b_impl { 227 header "cxx-templates-b-impl.h" 228 } 229 230 module cxx_templates_b { 231 header "cxx-templates-b.h" 232 } 233 234 module cxx_templates_c { 235 header "cxx-templates-c.h" 236 } 237 238 module cxx_templates_d { 239 header "cxx-templates-d.h" 240 } 241 242 module cxx_decls { 243 module unimported { 244 header "cxx-decls-unimported.h" 245 } 246 module imported { 247 header "cxx-decls-imported.h" 248 } 249 } 250 251 module cxx_decls_premerged { 252 header "cxx-decls-premerged.h" 253 } 254 255 module cxx_decls_merged { 256 header "cxx-decls-merged.h" 257 } 258 259 module config { 260 header "config.h" 261 config_macros [exhaustive] WANT_FOO, WANT_BAR 262 } 263 264 module diag_pragma { 265 header "diag_pragma.h" 266 } 267 268 module dummy { 269 header "dummy.h" 270 } 271 272 module builtin { 273 header "builtin.h" 274 explicit module sub { 275 header "builtin_sub.h" 276 } 277 } 278 279 module linkage_merge { 280 explicit module foo { 281 header "linkage-merge-foo.h" 282 } 283 explicit module bar { 284 header "linkage-merge-bar.h" 285 } 286 287 } 288 289 module incomplete_mod { 290 header "incomplete_mod.h" 291 } 292 293 module warning { 294 header "warning.h" 295 } 296 297 module warn_unused_local_typedef { 298 header "warn-unused-local-typedef.h" 299 } 300 301 module using_decl { 302 module a { header "using-decl-a.h" export * } 303 module b { header "using-decl-b.h" export * } 304 } 305 306 module recursive_visibility_a1 { 307 module inner { header "recursive_visibility_a1_inner.h" } 308 } 309 module recursive_visibility_a2 { 310 module inner { 311 module more_inner { 312 header "recursive_visibility_a2_more_inner.h" 313 } 314 } 315 } 316 module recursive_visibility_b { 317 header "recursive_visibility_b.h" 318 export * 319 } 320 module recursive_visibility_c { 321 header "recursive_visibility_c.h" 322 } 323 module recursive1 { 324 header "recursive1.h" 325 } 326 module recursive2 { 327 header "recursive2.h" 328 } 329 module crash { 330 header "crash.h" 331 } 332 333 module DebugCXX { 334 header "DebugCXX.h" 335 } 336 337 module DebugObjC { 338 header "DebugObjC.h" 339 } 340 341 module ImportNameInDir { 342 header "ImportNameInDir.h" 343 export * 344 } 345 346 module RequiresWithMissingHeader { 347 module HeaderBefore { 348 header "RequiresWithMissingHeader-Missing1.h" 349 requires missing 350 } 351 module HeaderAfter { 352 requires missing 353 header "RequiresWithMissingHeader-Missing2.h" 354 } 355 } 356 357 module TargetFeatures { 358 module arm { 359 requires arm 360 module aarch32 { requires aarch32 } 361 module aarch64 { requires aarch64 } 362 } 363 module x86 { 364 requires x86 365 module x86_32 { requires x86_32 } 366 module x86_64 { requires x86_64 } 367 } 368 } 369 370 module DebugSubmodules { 371 module DebugSubmoduleA { 372 header "DebugSubmoduleA.h" 373 export * 374 } 375 module DebugSubmoduleB { 376 header "DebugSubmoduleB.h" 377 export * 378 } 379 } 380 381 module ExtensionTestA { 382 header "ExtensionTestA.h" 383 } 384 385 module TypedefTag { 386 header "typedef-tag.h" 387 explicit module Hidden { 388 header "typedef-tag-hidden.h" 389 } 390 } 391 392 module ElaboratedTypeStructs { 393 module Empty {} 394 module Structs { 395 header "elaborated-type-structs.h" 396 } 397 } 398 399 // We import a module, then declare a method with selector stringValue in 400 // MethodPoolCombined1.h. In MethodPoolCombined2.h, we import another module 401 // that also contains a method for selector stringValue. We make sure that 402 // the method pool entry for stringValue in this module is complete. 403 module MethodPoolCombined { 404 header "MethodPoolCombined1.h" 405 header "MethodPoolCombined2.h" 406 } 407 408 module MethodPoolString1 { 409 header "MethodPoolString1.h" 410 } 411 412 module MethodPoolString2 { 413 header "MethodPoolString2.h" 414 } 415 416 module Empty {} 417 418 module MacroFabs1 { 419 header "MacroFabs1.h" 420 } 421