summaryrefslogtreecommitdiff
path: root/test/Parser/cxx-modules-interface.cppm
diff options
context:
space:
mode:
Diffstat (limited to 'test/Parser/cxx-modules-interface.cppm')
-rw-r--r--test/Parser/cxx-modules-interface.cppm32
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