| // RUN: %clang_cc1 -fmodules %s -verify | 
 | // expected-no-diagnostics | 
 |  | 
 | #pragma clang module build A | 
 | module A {} | 
 | #pragma clang module contents | 
 | #pragma clang module begin A | 
 | namespace N { | 
 |   class X; | 
 | } | 
 | #pragma clang module end | 
 | #pragma clang module endbuild | 
 |  | 
 | #pragma clang module build B | 
 | module B { | 
 |   module X {} | 
 |   module Y {} | 
 | } | 
 | #pragma clang module contents | 
 | #pragma clang module begin B.X | 
 | namespace N { | 
 |   class Friendly { | 
 |     friend class X; | 
 |   }; | 
 | } | 
 | #pragma clang module end | 
 | #pragma clang module begin B.Y | 
 | namespace N { | 
 |   class X; | 
 | } | 
 | #pragma clang module end | 
 | #pragma clang module endbuild | 
 |  | 
 | #pragma clang module import A | 
 | #pragma clang module import B.X | 
 | using N::X; | 
 | X *p; |