summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/modules-ts/basic/basic.def.odr
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-09-07 00:55:55 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-09-07 00:55:55 +0000
commitcd4a7a461f9879aff7795929adbd943b22db1c4d (patch)
tree274838cbd93a8a7f38efaabd3bfdce1bf59b2527 /clang/test/CXX/modules-ts/basic/basic.def.odr
parent264d7c9021edd1d527567c105cc0285194f4d3bc (diff)
downloadbcm5719-llvm-cd4a7a461f9879aff7795929adbd943b22db1c4d.tar.gz
bcm5719-llvm-cd4a7a461f9879aff7795929adbd943b22db1c4d.zip
[modules ts] Ensure that module linkage variables are always emitted and always have their name mangled.
llvm-svn: 312684
Diffstat (limited to 'clang/test/CXX/modules-ts/basic/basic.def.odr')
-rw-r--r--clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp5
-rw-r--r--clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm14
2 files changed, 13 insertions, 6 deletions
diff --git a/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp b/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp
index bdb541e9c47..79e68655b45 100644
--- a/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp
+++ b/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp
@@ -6,9 +6,8 @@
// CHECK-DAG: @_ZW6ModuleE19static_var_exported = available_externally global i32 0,
// CHECK-DAG: @const_var_exported = available_externally constant i32 3,
//
-// FIXME: The module name should be mangled into all of these.
-// CHECK-DAG: @extern_var_module_linkage = external global
-// CHECK-DAG: @inline_var_module_linkage = linkonce_odr global
+// CHECK-DAG: @_ZW6ModuleE25extern_var_module_linkage = external global
+// CHECK-DAG: @_ZW6ModuleE25inline_var_module_linkage = linkonce_odr global
// CHECK-DAG: @_ZW6ModuleE25static_var_module_linkage = available_externally global i32 0,
// CHECK-DAG: @_ZW6ModuleE24const_var_module_linkage = available_externally constant i32 3,
diff --git a/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm b/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm
index 093ce235a75..15d1114fb03 100644
--- a/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm
+++ b/clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm
@@ -14,14 +14,17 @@
// CHECK-DAG: @_ZW6ModuleE19static_var_exported = global
// CHECK-DAG: @const_var_exported = constant
//
-// FIXME: The module name should be mangled into all of these.
-// CHECK-DAG: @extern_var_module_linkage = external global
+// CHECK-DAG: @_ZW6ModuleE25extern_var_module_linkage = external global
// FIXME: Should this be 'weak_odr global'? Presumably it must be, since we
// can discard this global and its initializer (if any), and other TUs are not
// permitted to run the initializer for this variable.
-// CHECK-DAG: @inline_var_module_linkage = linkonce_odr global
+// CHECK-DAG: @_ZW6ModuleE25inline_var_module_linkage = linkonce_odr global
// CHECK-DAG: @_ZW6ModuleE25static_var_module_linkage = global
// CHECK-DAG: @_ZW6ModuleE24const_var_module_linkage = constant
+//
+// CHECK-DAG: @_ZW6ModuleE25unused_var_module_linkage = global i32 4
+// CHECK-DAG: @_ZW6ModuleE32unused_static_var_module_linkage = global i32 5
+// CHECK-DAG: @_ZW6ModuleE31unused_const_var_module_linkage = constant i32 7
static void unused_static_global_module() {}
static void used_static_global_module() {}
@@ -113,6 +116,11 @@ void noninline_module_linkage() {
(void)&const_var_module_linkage;
}
+int unused_var_module_linkage = 4;
+static int unused_static_var_module_linkage = 5;
+inline int unused_inline_var_module_linkage = 6;
+const int unused_const_var_module_linkage = 7;
+
struct a {
struct b {};
struct c {};
OpenPOWER on IntegriCloud