1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
  
     | 
    
      module XA {
  header "a.h"
}
module XB {
  module B { header "b.h" }
}
module XC {
  header "c.h"
  use XA
  // Intentionally doesn't use XB to show that -fdecl-use isn't transitive.
}
module XD {
  header "d.h"
  use XA
  // Intentionally doesn't use XB to show that -fdecl-use isn't transitive.
}
module XE {
  header "e.h"
  use XA
  use XB
}
module XF {
  header "f.h"
  use XA
  use XB
}
module XG {
  header "g.h"
  header "g1.h"
  use XC
  use XE
  use XJ
  use XK
  use XN
}
module XH {
  module H { header "h.h" }
  header "h1.h"
  header "s.h"
  use XC
  use XE
}
module XJ {
  header "j.h"
}
module XK {
  textual header "k.h"
}
module XL {
  textual header "l.h"
}
module XM {
  private textual header "m.h"
  textual header "m2.h"
}
module XN {
  module sub {
    header "sub.h"
  }
}
module XS {
}
 
     |