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  header "unavailable.h"
24  use XA
25  use XB
26}
27
28module XF {
29  header "f.h"
30  header "unavailable.h"
31  use XA
32  use XB
33}
34
35module XG {
36  header "g.h"
37  header "g1.h"
38  use XC
39  use XE
40  use XJ
41}
42
43module XH {
44  header "h.h"
45  header "h1.h"
46  header "s.h"
47  use XC
48  use XE
49}
50
51module XJ {
52  header "j.h"
53}
54
55module XS {
56}
57