1*a171d248SMichael Spencermodule c_library [extern_c] { module inner { header "c-header.h" } } 2*a171d248SMichael Spencermodule cxx_library { header "cxx-header.h" requires cplusplus } 3*a171d248SMichael Spencermodule c_library_bad [extern_c] { header "c-header-bad.h" } 4*a171d248SMichael Spencermodule diamond_top { header "diamond_top.h" } 5*a171d248SMichael Spencermodule diamond_left { 6*a171d248SMichael Spencer header "diamond_left.h" 7*a171d248SMichael Spencer export diamond_top 8*a171d248SMichael Spencer} 9*a171d248SMichael Spencermodule diamond_right { 10*a171d248SMichael Spencer header "diamond_right.h" 11*a171d248SMichael Spencer export diamond_top 12*a171d248SMichael Spencer} 13*a171d248SMichael Spencermodule diamond_bottom { 14*a171d248SMichael Spencer header "diamond_bottom.h" 15*a171d248SMichael Spencer export * 16*a171d248SMichael Spencer} 17*a171d248SMichael Spencermodule irgen { header "irgen.h" } 18*a171d248SMichael Spencermodule cxx_irgen_top { header "cxx-irgen-top.h" } 19*a171d248SMichael Spencermodule cxx_irgen_left { header "cxx-irgen-left.h" } 20*a171d248SMichael Spencermodule cxx_irgen_right { header "cxx-irgen-right.h" } 21*a171d248SMichael Spencermodule lookup_left_objc { header "lookup_left.h" } 22*a171d248SMichael Spencermodule lookup_right_objc { header "lookup_right.h" } 23*a171d248SMichael Spencermodule lookup_left_cxx { header "lookup_left.hpp" } 24*a171d248SMichael Spencermodule lookup_right_cxx { header "lookup_right.hpp" } 25*a171d248SMichael Spencermodule module_private_left { header "module_private_left.h" } 26*a171d248SMichael Spencermodule module_private_right { header "module_private_right.h" } 27*a171d248SMichael Spencermodule macros_top { 28*a171d248SMichael Spencer header "macros_top.h" 29*a171d248SMichael Spencer explicit module b { header "macros_top_b.h" } 30*a171d248SMichael Spencer explicit module c { header "macros_top_c.h" } 31*a171d248SMichael Spencer} 32*a171d248SMichael Spencermodule macros_left { 33*a171d248SMichael Spencer header "macros_left.h" 34*a171d248SMichael Spencer export * 35*a171d248SMichael Spencer} 36*a171d248SMichael Spencermodule macros_right { 37*a171d248SMichael Spencer header "macros_right.h" 38*a171d248SMichael Spencer export * 39*a171d248SMichael Spencer explicit module undef { 40*a171d248SMichael Spencer header "macros_right_undef.h" 41*a171d248SMichael Spencer } 42*a171d248SMichael Spencer} 43*a171d248SMichael Spencermodule macros_bottom { 44*a171d248SMichael Spencer header "macros_bottom.h" 45*a171d248SMichael Spencer export * 46*a171d248SMichael Spencer} 47*a171d248SMichael Spencermodule macros { header "macros.h" } 48*a171d248SMichael Spencermodule macros_other { header "macros_other.h" } 49*a171d248SMichael Spencermodule category_top { header "category_top.h" } 50*a171d248SMichael Spencermodule category_left { 51*a171d248SMichael Spencer header "category_left.h" 52*a171d248SMichael Spencer export category_top 53*a171d248SMichael Spencer 54*a171d248SMichael Spencer explicit module sub { 55*a171d248SMichael Spencer header "category_left_sub.h" 56*a171d248SMichael Spencer } 57*a171d248SMichael Spencer} 58*a171d248SMichael Spencermodule category_right { 59*a171d248SMichael Spencer header "category_right.h" 60*a171d248SMichael Spencer export category_top 61*a171d248SMichael Spencer 62*a171d248SMichael Spencer explicit module sub { 63*a171d248SMichael Spencer header "category_right_sub.h" 64*a171d248SMichael Spencer } 65*a171d248SMichael Spencer} 66*a171d248SMichael Spencermodule category_bottom { 67*a171d248SMichael Spencer header "category_bottom.h" 68*a171d248SMichael Spencer export category_left 69*a171d248SMichael Spencer export category_right 70*a171d248SMichael Spencer} 71*a171d248SMichael Spencermodule category_other { header "category_other.h" } 72*a171d248SMichael Spencermodule redeclarations_left { header "redeclarations_left.h" } 73*a171d248SMichael Spencermodule redeclarations_right { header "redeclarations_right.h" } 74*a171d248SMichael Spencermodule redecl_namespaces_left { header "redecl_namespaces_left.h" } 75*a171d248SMichael Spencermodule redecl_namespaces_right { header "redecl_namespaces_right.h" } 76*a171d248SMichael Spencermodule redecl_add_after_load_top { header "redecl-add-after-load-top.h" } 77*a171d248SMichael Spencermodule redecl_add_after_load_decls { header "redecl-add-after-load-decls.h" } 78*a171d248SMichael Spencermodule redecl_add_after_load { header "redecl-add-after-load.h" } 79*a171d248SMichael Spencermodule load_failure { header "load_failure.h" } 80*a171d248SMichael Spencer 81*a171d248SMichael Spencermodule decldef { 82*a171d248SMichael Spencer explicit module Decl { header "decl.h" } 83*a171d248SMichael Spencer explicit module Decl2 { header "decl2.h" } 84*a171d248SMichael Spencer explicit module Def { header "def.h" } 85*a171d248SMichael Spencer} 86*a171d248SMichael Spencer 87*a171d248SMichael Spencermodule redecl_merge_top { 88*a171d248SMichael Spencer header "redecl-merge-top.h" 89*a171d248SMichael Spencer explicit module Explicit { header "redecl-merge-top-explicit.h" } 90*a171d248SMichael Spencer exclude header "nonexistent.h" 91*a171d248SMichael Spencer} 92*a171d248SMichael Spencermodule redecl_merge_left { 93*a171d248SMichael Spencer header "redecl-merge-left.h" 94*a171d248SMichael Spencer export * 95*a171d248SMichael Spencer} 96*a171d248SMichael Spencermodule redecl_merge_left_left { 97*a171d248SMichael Spencer header "redecl-merge-left-left.h" 98*a171d248SMichael Spencer export * 99*a171d248SMichael Spencer} 100*a171d248SMichael Spencermodule redecl_merge_right { 101*a171d248SMichael Spencer header "redecl-merge-right.h" 102*a171d248SMichael Spencer export * 103*a171d248SMichael Spencer} 104*a171d248SMichael Spencermodule redecl_merge_bottom { 105*a171d248SMichael Spencer explicit module prefix { 106*a171d248SMichael Spencer header "redecl-merge-bottom-prefix.h" 107*a171d248SMichael Spencer } 108*a171d248SMichael Spencer 109*a171d248SMichael Spencer header "redecl-merge-bottom.h" 110*a171d248SMichael Spencer export * 111*a171d248SMichael Spencer} 112*a171d248SMichael Spencermodule namespaces_top { 113*a171d248SMichael Spencer header "namespaces-top.h" 114*a171d248SMichael Spencer export * 115*a171d248SMichael Spencer} 116*a171d248SMichael Spencermodule namespaces_left { 117*a171d248SMichael Spencer header "namespaces-left.h" 118*a171d248SMichael Spencer export * 119*a171d248SMichael Spencer} 120*a171d248SMichael Spencermodule namespaces_right { 121*a171d248SMichael Spencer header "namespaces-right.h" 122*a171d248SMichael Spencer export * 123*a171d248SMichael Spencer} 124*a171d248SMichael Spencermodule templates_top { 125*a171d248SMichael Spencer header "templates-top.h" 126*a171d248SMichael Spencer export * 127*a171d248SMichael Spencer} 128*a171d248SMichael Spencermodule templates_left { 129*a171d248SMichael Spencer header "templates-left.h" 130*a171d248SMichael Spencer export * 131*a171d248SMichael Spencer} 132*a171d248SMichael Spencermodule templates_right { 133*a171d248SMichael Spencer header "templates-right.h" 134*a171d248SMichael Spencer export * 135*a171d248SMichael Spencer} 136*a171d248SMichael Spencermodule MethodPoolA { 137*a171d248SMichael Spencer header "MethodPoolA.h" 138*a171d248SMichael Spencer 139*a171d248SMichael Spencer explicit module Sub2 { 140*a171d248SMichael Spencer header "MethodPoolASub2.h" 141*a171d248SMichael Spencer } 142*a171d248SMichael Spencer 143*a171d248SMichael Spencer explicit module Sub { 144*a171d248SMichael Spencer header "MethodPoolASub.h" 145*a171d248SMichael Spencer } 146*a171d248SMichael Spencer} 147*a171d248SMichael Spencermodule MethodPoolB { 148*a171d248SMichael Spencer header "MethodPoolB.h" 149*a171d248SMichael Spencer 150*a171d248SMichael Spencer explicit module Sub2 { 151*a171d248SMichael Spencer header "MethodPoolBSub2.h" 152*a171d248SMichael Spencer } 153*a171d248SMichael Spencer 154*a171d248SMichael Spencer explicit module Sub { 155*a171d248SMichael Spencer header "MethodPoolBSub.h" 156*a171d248SMichael Spencer } 157*a171d248SMichael Spencer} 158*a171d248SMichael Spencermodule import_decl { 159*a171d248SMichael Spencer header "import-decl.h" 160*a171d248SMichael Spencer} 161*a171d248SMichael Spencer 162*a171d248SMichael Spencerframework module * { 163*a171d248SMichael Spencer exclude NotAModule 164*a171d248SMichael Spencer} 165*a171d248SMichael Spencer 166*a171d248SMichael Spencermodule linkage_merge_left { 167*a171d248SMichael Spencer explicit module sub { 168*a171d248SMichael Spencer header "linkage-merge-sub.h" 169*a171d248SMichael Spencer } 170*a171d248SMichael Spencer} 171*a171d248SMichael Spencer 172*a171d248SMichael Spencermodule autolink { 173*a171d248SMichael Spencer header "autolink.h" 174*a171d248SMichael Spencer link "autolink" 175*a171d248SMichael Spencer 176*a171d248SMichael Spencer explicit module sub { 177*a171d248SMichael Spencer header "autolink-sub.h" 178*a171d248SMichael Spencer link "autolink_sub" 179*a171d248SMichael Spencer } 180*a171d248SMichael Spencer 181*a171d248SMichael Spencer explicit module sub2 { 182*a171d248SMichael Spencer header "autolink-sub2.h" 183*a171d248SMichael Spencer link framework "autolink_framework" 184*a171d248SMichael Spencer } 185*a171d248SMichael Spencer 186*a171d248SMichael Spencer explicit module sub3 { 187*a171d248SMichael Spencer header "autolink-sub3.h" 188*a171d248SMichael Spencer link "autolink_from_pch" 189*a171d248SMichael Spencer } 190*a171d248SMichael Spencer} 191*a171d248SMichael Spencer 192*a171d248SMichael Spencermodule weird_objc { 193*a171d248SMichael Spencer header "weird_objc.h" 194*a171d248SMichael Spencer} 195*a171d248SMichael Spencer 196*a171d248SMichael Spencermodule objc_type_param { 197*a171d248SMichael Spencer header "objc_type_param.h" 198*a171d248SMichael Spencer} 199*a171d248SMichael Spencer 200*a171d248SMichael Spencermodule ignored_macros { 201*a171d248SMichael Spencer header "ignored_macros.h" 202*a171d248SMichael Spencer} 203*a171d248SMichael Spencer 204*a171d248SMichael Spencermodule cxx_many_overloads { 205*a171d248SMichael Spencer header "cxx-many-overloads.h" 206*a171d248SMichael Spencer} 207*a171d248SMichael Spencer 208*a171d248SMichael Spencermodule cxx_inline_namespace { 209*a171d248SMichael Spencer header "cxx-inline-namespace.h" 210*a171d248SMichael Spencer} 211*a171d248SMichael Spencer 212*a171d248SMichael Spencermodule cxx_inline_namespace_b { 213*a171d248SMichael Spencer header "cxx-inline-namespace-b.h" 214*a171d248SMichael Spencer} 215*a171d248SMichael Spencer 216*a171d248SMichael Spencermodule cxx_linkage_cache { 217*a171d248SMichael Spencer header "cxx-linkage-cache.h" 218*a171d248SMichael Spencer} 219*a171d248SMichael Spencer 220*a171d248SMichael Spencermodule cxx_templates_common { 221*a171d248SMichael Spencer header "cxx-templates-common.h" 222*a171d248SMichael Spencer 223*a171d248SMichael Spencer explicit module unimported { header "cxx-templates-unimported.h" } 224*a171d248SMichael Spencer} 225*a171d248SMichael Spencer 226*a171d248SMichael Spencermodule cxx_templates_a { 227*a171d248SMichael Spencer header "cxx-templates-a.h" 228*a171d248SMichael Spencer} 229*a171d248SMichael Spencer 230*a171d248SMichael Spencermodule cxx_templates_b_impl { 231*a171d248SMichael Spencer header "cxx-templates-b-impl.h" 232*a171d248SMichael Spencer} 233*a171d248SMichael Spencer 234*a171d248SMichael Spencermodule cxx_templates_b { 235*a171d248SMichael Spencer header "cxx-templates-b.h" 236*a171d248SMichael Spencer} 237*a171d248SMichael Spencer 238*a171d248SMichael Spencermodule cxx_templates_c { 239*a171d248SMichael Spencer header "cxx-templates-c.h" 240*a171d248SMichael Spencer} 241*a171d248SMichael Spencer 242*a171d248SMichael Spencermodule cxx_templates_d { 243*a171d248SMichael Spencer header "cxx-templates-d.h" 244*a171d248SMichael Spencer} 245*a171d248SMichael Spencer 246*a171d248SMichael Spencermodule cxx_decls { 247*a171d248SMichael Spencer module unimported { 248*a171d248SMichael Spencer header "cxx-decls-unimported.h" 249*a171d248SMichael Spencer } 250*a171d248SMichael Spencer module imported { 251*a171d248SMichael Spencer header "cxx-decls-imported.h" 252*a171d248SMichael Spencer } 253*a171d248SMichael Spencer} 254*a171d248SMichael Spencer 255*a171d248SMichael Spencermodule cxx_decls_premerged { 256*a171d248SMichael Spencer header "cxx-decls-premerged.h" 257*a171d248SMichael Spencer} 258*a171d248SMichael Spencer 259*a171d248SMichael Spencermodule cxx_decls_merged { 260*a171d248SMichael Spencer header "cxx-decls-merged.h" 261*a171d248SMichael Spencer} 262*a171d248SMichael Spencer 263*a171d248SMichael Spencermodule diag_flags { 264*a171d248SMichael Spencer header "diag_flags.h" 265*a171d248SMichael Spencer} 266*a171d248SMichael Spencer 267*a171d248SMichael Spencermodule diag_pragma { 268*a171d248SMichael Spencer header "diag_pragma.h" 269*a171d248SMichael Spencer} 270*a171d248SMichael Spencer 271*a171d248SMichael Spencermodule pragma_pack { 272*a171d248SMichael Spencer module set { header "pragma_pack_set.h" } 273*a171d248SMichael Spencer module empty { header "empty.h" } 274*a171d248SMichael Spencer} 275*a171d248SMichael Spencer 276*a171d248SMichael Spencermodule dummy { 277*a171d248SMichael Spencer header "dummy.h" 278*a171d248SMichael Spencer} 279*a171d248SMichael Spencer 280*a171d248SMichael Spencermodule builtin { 281*a171d248SMichael Spencer header "builtin.h" 282*a171d248SMichael Spencer explicit module sub { 283*a171d248SMichael Spencer header "builtin_sub.h" 284*a171d248SMichael Spencer } 285*a171d248SMichael Spencer} 286*a171d248SMichael Spencer 287*a171d248SMichael Spencermodule linkage_merge { 288*a171d248SMichael Spencer explicit module foo { 289*a171d248SMichael Spencer header "linkage-merge-foo.h" 290*a171d248SMichael Spencer } 291*a171d248SMichael Spencer explicit module bar { 292*a171d248SMichael Spencer header "linkage-merge-bar.h" 293*a171d248SMichael Spencer } 294*a171d248SMichael Spencer 295*a171d248SMichael Spencer} 296*a171d248SMichael Spencer 297*a171d248SMichael Spencermodule incomplete_mod { 298*a171d248SMichael Spencer header "incomplete_mod.h" 299*a171d248SMichael Spencer} 300*a171d248SMichael Spencer 301*a171d248SMichael Spencermodule warning { 302*a171d248SMichael Spencer header "warning.h" 303*a171d248SMichael Spencer} 304*a171d248SMichael Spencer 305*a171d248SMichael Spencermodule warn_unused_local_typedef { 306*a171d248SMichael Spencer header "warn-unused-local-typedef.h" 307*a171d248SMichael Spencer} 308*a171d248SMichael Spencer 309*a171d248SMichael Spencermodule using_decl { 310*a171d248SMichael Spencer module a { header "using-decl-a.h" export * } 311*a171d248SMichael Spencer module b { header "using-decl-b.h" export * } 312*a171d248SMichael Spencer} 313*a171d248SMichael Spencer 314*a171d248SMichael Spencermodule recursive_visibility_a1 { 315*a171d248SMichael Spencer module inner { header "recursive_visibility_a1_inner.h" } 316*a171d248SMichael Spencer} 317*a171d248SMichael Spencermodule recursive_visibility_a2 { 318*a171d248SMichael Spencer module inner { 319*a171d248SMichael Spencer module more_inner { 320*a171d248SMichael Spencer header "recursive_visibility_a2_more_inner.h" 321*a171d248SMichael Spencer } 322*a171d248SMichael Spencer } 323*a171d248SMichael Spencer} 324*a171d248SMichael Spencermodule recursive_visibility_b { 325*a171d248SMichael Spencer header "recursive_visibility_b.h" 326*a171d248SMichael Spencer export * 327*a171d248SMichael Spencer} 328*a171d248SMichael Spencermodule recursive_visibility_c { 329*a171d248SMichael Spencer header "recursive_visibility_c.h" 330*a171d248SMichael Spencer} 331*a171d248SMichael Spencermodule recursive1 { 332*a171d248SMichael Spencer header "recursive1.h" 333*a171d248SMichael Spencer} 334*a171d248SMichael Spencermodule recursive2 { 335*a171d248SMichael Spencer header "recursive2.h" 336*a171d248SMichael Spencer} 337*a171d248SMichael Spencermodule crash { 338*a171d248SMichael Spencer header "crash.h" 339*a171d248SMichael Spencer} 340*a171d248SMichael Spencer 341*a171d248SMichael Spencermodule DebugCXX { 342*a171d248SMichael Spencer header "DebugCXX.h" 343*a171d248SMichael Spencer} 344*a171d248SMichael Spencer 345*a171d248SMichael Spencermodule DebugObjC { 346*a171d248SMichael Spencer header "DebugObjC.h" 347*a171d248SMichael Spencer} 348*a171d248SMichael Spencer 349*a171d248SMichael Spencermodule DebugObjCImport { 350*a171d248SMichael Spencer module SubModule { 351*a171d248SMichael Spencer header "DebugObjCImport.h" 352*a171d248SMichael Spencer } 353*a171d248SMichael Spencer} 354*a171d248SMichael Spencer 355*a171d248SMichael Spencermodule DebugDwoId { 356*a171d248SMichael Spencer header "DebugDwoId.h" 357*a171d248SMichael Spencer} 358*a171d248SMichael Spencer 359*a171d248SMichael Spencermodule ImportNameInDir { 360*a171d248SMichael Spencer header "ImportNameInDir.h" 361*a171d248SMichael Spencer export * 362*a171d248SMichael Spencer} 363*a171d248SMichael Spencer 364*a171d248SMichael Spencermodule RequiresWithMissingHeader { 365*a171d248SMichael Spencer module HeaderBefore { 366*a171d248SMichael Spencer header "RequiresWithMissingHeader-Missing1.h" 367*a171d248SMichael Spencer requires missing 368*a171d248SMichael Spencer } 369*a171d248SMichael Spencer module HeaderAfter { 370*a171d248SMichael Spencer requires missing 371*a171d248SMichael Spencer header "RequiresWithMissingHeader-Missing2.h" 372*a171d248SMichael Spencer } 373*a171d248SMichael Spencer} 374*a171d248SMichael Spencer 375*a171d248SMichael Spencermodule TargetFeatures { 376*a171d248SMichael Spencer module arm { 377*a171d248SMichael Spencer requires arm 378*a171d248SMichael Spencer module aarch32 { requires aarch32 } 379*a171d248SMichael Spencer module aarch64 { requires aarch64 } 380*a171d248SMichael Spencer } 381*a171d248SMichael Spencer module x86 { 382*a171d248SMichael Spencer requires x86 383*a171d248SMichael Spencer module x86_32 { requires x86_32 } 384*a171d248SMichael Spencer module x86_64 { requires x86_64 } 385*a171d248SMichael Spencer } 386*a171d248SMichael Spencer module riscv { 387*a171d248SMichael Spencer requires riscv 388*a171d248SMichael Spencer module riscv32 { requires riscv32 } 389*a171d248SMichael Spencer module riscv64 { requires riscv64 } 390*a171d248SMichael Spencer } 391*a171d248SMichael Spencer} 392*a171d248SMichael Spencer 393*a171d248SMichael Spencermodule DebugSubmodules { 394*a171d248SMichael Spencer module DebugSubmoduleA { 395*a171d248SMichael Spencer header "DebugSubmoduleA.h" 396*a171d248SMichael Spencer export * 397*a171d248SMichael Spencer } 398*a171d248SMichael Spencer module DebugSubmoduleB { 399*a171d248SMichael Spencer header "DebugSubmoduleB.h" 400*a171d248SMichael Spencer export * 401*a171d248SMichael Spencer } 402*a171d248SMichael Spencer} 403*a171d248SMichael Spencer 404*a171d248SMichael Spencermodule ExtensionTestA { 405*a171d248SMichael Spencer header "ExtensionTestA.h" 406*a171d248SMichael Spencer} 407*a171d248SMichael Spencer 408*a171d248SMichael Spencermodule TypedefTag { 409*a171d248SMichael Spencer header "typedef-tag.h" 410*a171d248SMichael Spencer explicit module Hidden { 411*a171d248SMichael Spencer header "typedef-tag-hidden.h" 412*a171d248SMichael Spencer } 413*a171d248SMichael Spencer} 414*a171d248SMichael Spencer 415*a171d248SMichael Spencermodule ElaboratedTypeStructs { 416*a171d248SMichael Spencer module Empty {} 417*a171d248SMichael Spencer module Structs { 418*a171d248SMichael Spencer header "elaborated-type-structs.h" 419*a171d248SMichael Spencer } 420*a171d248SMichael Spencer} 421*a171d248SMichael Spencer 422*a171d248SMichael Spencer// We import a module, then declare a method with selector stringValue in 423*a171d248SMichael Spencer// MethodPoolCombined1.h. In MethodPoolCombined2.h, we import another module 424*a171d248SMichael Spencer// that also contains a method for selector stringValue. We make sure that 425*a171d248SMichael Spencer// the method pool entry for stringValue in this module is complete. 426*a171d248SMichael Spencermodule MethodPoolCombined { 427*a171d248SMichael Spencer header "MethodPoolCombined1.h" 428*a171d248SMichael Spencer header "MethodPoolCombined2.h" 429*a171d248SMichael Spencer} 430*a171d248SMichael Spencer 431*a171d248SMichael Spencermodule MethodPoolString1 { 432*a171d248SMichael Spencer header "MethodPoolString1.h" 433*a171d248SMichael Spencer} 434*a171d248SMichael Spencer 435*a171d248SMichael Spencermodule MethodPoolString2 { 436*a171d248SMichael Spencer header "MethodPoolString2.h" 437*a171d248SMichael Spencer} 438*a171d248SMichael Spencer 439*a171d248SMichael Spencermodule Empty {} 440*a171d248SMichael Spencer 441*a171d248SMichael Spencermodule MacroFabs1 { 442*a171d248SMichael Spencer header "MacroFabs1.h" 443*a171d248SMichael Spencer} 444*a171d248SMichael Spencer 445*a171d248SMichael Spencermodule DiagOutOfDate { 446*a171d248SMichael Spencer header "DiagOutOfDate.h" 447*a171d248SMichael Spencer} 448*a171d248SMichael Spencer 449*a171d248SMichael Spencermodule DebugNestedA { 450*a171d248SMichael Spencer header "DebugNestedA.h" 451*a171d248SMichael Spencer export * 452*a171d248SMichael Spencer} 453*a171d248SMichael Spencer 454*a171d248SMichael Spencermodule DebugNestedB { 455*a171d248SMichael Spencer header "DebugNestedB.h" 456*a171d248SMichael Spencer export * 457*a171d248SMichael Spencer} 458*a171d248SMichael Spencer 459*a171d248SMichael Spencermodule objcAtKeywordMissingEnd { 460*a171d248SMichael Spencer header "objcAtKeywordMissingEnd.h" 461*a171d248SMichael Spencer} 462*a171d248SMichael Spencer 463*a171d248SMichael Spencermodule innerstructredef { 464*a171d248SMichael Spencer module one { 465*a171d248SMichael Spencer header "empty.h" 466*a171d248SMichael Spencer } 467*a171d248SMichael Spencer module two { 468*a171d248SMichael Spencer header "innerstructredef.h" 469*a171d248SMichael Spencer } 470*a171d248SMichael Spencer} 471*a171d248SMichael Spencer 472*a171d248SMichael Spencermodule template_nontrivial0 { 473*a171d248SMichael Spencer header "template-nontrivial0.h" 474*a171d248SMichael Spencer export * 475*a171d248SMichael Spencer} 476*a171d248SMichael Spencer 477*a171d248SMichael Spencermodule template_nontrivial1 { 478*a171d248SMichael Spencer header "template-nontrivial1.h" 479*a171d248SMichael Spencer export * 480*a171d248SMichael Spencer} 481