summaryrefslogtreecommitdiff
path: root/test/CXX/modules-ts/basic/basic.link/p2/module.cppm
diff options
context:
space:
mode:
Diffstat (limited to 'test/CXX/modules-ts/basic/basic.link/p2/module.cppm')
-rw-r--r--test/CXX/modules-ts/basic/basic.link/p2/module.cppm29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/CXX/modules-ts/basic/basic.link/p2/module.cppm b/test/CXX/modules-ts/basic/basic.link/p2/module.cppm
new file mode 100644
index 0000000000000..bb261700db84f
--- /dev/null
+++ b/test/CXX/modules-ts/basic/basic.link/p2/module.cppm
@@ -0,0 +1,29 @@
+// RUN: %clang_cc1 -std=c++1z -fmodules-ts %s -verify
+// expected-no-diagnostics
+export module M;
+
+export int external_linkage_var;
+int module_linkage_var;
+static int internal_linkage_var;
+
+export void external_linkage_fn() {}
+void module_linkage_fn() {}
+static void internal_linkage_fn() {}
+
+export struct external_linkage_class {};
+struct module_linkage_class {};
+namespace {
+ struct internal_linkage_class {};
+}
+
+void use() {
+ external_linkage_fn();
+ module_linkage_fn();
+ internal_linkage_fn();
+ (void)external_linkage_class{};
+ (void)module_linkage_class{};
+ (void)internal_linkage_class{};
+ (void)external_linkage_var;
+ (void)module_linkage_var;
+ (void)internal_linkage_var;
+}