1 // RUN: %clang_cc1 -std=c++1z -fmodules %s -verify 2 3 #pragma clang module build baz 4 module baz {} 5 #pragma clang module endbuild // baz 6 7 #pragma clang module build foo 8 module foo { module bar {} } 9 #pragma clang module contents 10 #pragma clang module begin foo.bar 11 12 // Can import baz here even though it was created in an outer build. 13 #pragma clang module import baz 14 15 #pragma clang module build bar 16 module bar {} 17 #pragma clang module contents 18 #pragma clang module begin bar 19 extern int n; 20 #pragma clang module end 21 #pragma clang module endbuild // bar 22 23 #pragma clang module import bar 24 f()25 constexpr int *f() { return &n; } 26 27 #pragma clang module end 28 #pragma clang module endbuild // foo 29 30 #pragma clang module import bar 31 #pragma clang module import foo.bar 32 static_assert(f() == &n); 33 34 #pragma clang module build // expected-error {{expected module name}} 35 #pragma clang module build unterminated // expected-error {{no matching '#pragma clang module endbuild'}} 36