diff options
Diffstat (limited to 'test/Modules/preprocess-build.cpp')
-rw-r--r-- | test/Modules/preprocess-build.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/Modules/preprocess-build.cpp b/test/Modules/preprocess-build.cpp new file mode 100644 index 000000000000..bf9f16162be2 --- /dev/null +++ b/test/Modules/preprocess-build.cpp @@ -0,0 +1,35 @@ +// RUN: %clang_cc1 -std=c++1z %s -verify + +#pragma clang module build baz + module baz {} +#pragma clang module endbuild // baz + +#pragma clang module build foo + module foo { module bar {} } +#pragma clang module contents + #pragma clang module begin foo.bar + + // Can import baz here even though it was created in an outer build. + #pragma clang module import baz + + #pragma clang module build bar + module bar {} + #pragma clang module contents + #pragma clang module begin bar + extern int n; + #pragma clang module end + #pragma clang module endbuild // bar + + #pragma clang module import bar + + constexpr int *f() { return &n; } + + #pragma clang module end +#pragma clang module endbuild // foo + +#pragma clang module import bar +#pragma clang module import foo.bar +static_assert(f() == &n); + +#pragma clang module build // expected-error {{expected module name}} +#pragma clang module build unterminated // expected-error {{no matching '#pragma clang module endbuild'}} |