1module XA {
2  header "a.h"
3}
4
5module XB {
6  header "b.h"
7}
8
9module XC {
10  header "c.h"
11  use XA
12  // Intentionally doesn't use XB to show that -fdecl-use isn't transitive.
13}
14
15module XD {
16  header "d.h"
17  use XA
18  // Intentionally doesn't use XB to show that -fdecl-use isn't transitive.
19}
20
21module XE {
22  header "e.h"
23  use XA
24  use XB
25}
26
27module XF {
28  header "f.h"
29  use XA
30  use XB
31}
32
33module XG {
34  header "g.h"
35  header "g1.h"
36  use XC
37  use XE
38}
39
40module XH {
41  header "h.h"
42  header "h1.h"
43  use XC
44  use XE
45}
46