diff options
Diffstat (limited to 'test/Parser/cxx-modules-interface.cppm')
-rw-r--r-- | test/Parser/cxx-modules-interface.cppm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/Parser/cxx-modules-interface.cppm b/test/Parser/cxx-modules-interface.cppm new file mode 100644 index 0000000000000..f7835bd167b20 --- /dev/null +++ b/test/Parser/cxx-modules-interface.cppm @@ -0,0 +1,32 @@ +// RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface %s -o %t.pcm -verify +// RUN: %clang_cc1 -std=c++1z -fmodules-ts -emit-module-interface %s -o %t.pcm -verify -Dmodule=int -DERRORS + +module foo; +#ifndef ERRORS +// expected-no-diagnostics +#else +// expected-error@-4 {{expected module declaration at start of module interface}} + +// FIXME: support 'export module X;' and 'export { int n; module X; }' +// FIXME: proclaimed-ownership-declarations? + +export { + int a; + int b; +} +export int c; + +namespace N { + export void f() {} +} + +export struct T {} t; + +struct S { + export int n; // expected-error {{expected member name or ';'}} + export static int n; // expected-error {{expected member name or ';'}} +}; +void f() { + export int n; // expected-error {{expected expression}} +} +#endif |