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}
41
42module XH {
43  header "h.h"
44  header "h1.h"
45  use XC
46  use XE
47}
48