1 // RUN: %clang_cc1 -fmodules %s -verify
2 // expected-no-diagnostics
3 
4 #pragma clang module build A
5 module A {}
6 #pragma clang module contents
7 #pragma clang module begin A
8 namespace N {
9   class X;
10 }
11 #pragma clang module end
12 #pragma clang module endbuild
13 
14 #pragma clang module build B
15 module B {
16   module X {}
17   module Y {}
18 }
19 #pragma clang module contents
20 #pragma clang module begin B.X
21 namespace N {
22   class Friendly {
23     friend class X;
24   };
25 }
26 #pragma clang module end
27 #pragma clang module begin B.Y
28 namespace N {
29   class X;
30 }
31 #pragma clang module end
32 #pragma clang module endbuild
33 
34 #pragma clang module import A
35 #pragma clang module import B.X
36 using N::X;
37 X *p;
38