// 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; |