diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-09-07 00:55:55 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-09-07 00:55:55 +0000 |
commit | cd4a7a461f9879aff7795929adbd943b22db1c4d (patch) | |
tree | 274838cbd93a8a7f38efaabd3bfdce1bf59b2527 /clang/test/CXX/modules-ts/basic/basic.def.odr | |
parent | 264d7c9021edd1d527567c105cc0285194f4d3bc (diff) | |
download | bcm5719-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.cpp | 5 | ||||
-rw-r--r-- | clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm | 14 |
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 {}; |