blob: bf9f16162be24ff4f6a3db91e771c42e15957ac5 [file] [log] [blame]
Richard Smith5d2ed482017-06-09 19:22:32 +00001// RUN: %clang_cc1 -std=c++1z %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
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
32static_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'}}