diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-09-04 05:37:53 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-09-04 05:37:53 +0000 |
| commit | dd8b5337e9da480640598008de6211dab68c20dc (patch) | |
| tree | ec1b623d8e47e3bd3d256a9ac494e3cbd3f2a3c1 /clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp | |
| parent | ebc165901682c0d9feb0c4490e5d9ffaee214983 (diff) | |
| download | bcm5719-llvm-dd8b5337e9da480640598008de6211dab68c20dc.tar.gz bcm5719-llvm-dd8b5337e9da480640598008de6211dab68c20dc.zip | |
Implement Itanium name mangling support for C++ Modules TS.
This follows the scheme agreed with Nathan Sidwell, which can be found here:
https://gcc.gnu.org/wiki/cxx-modules?action=AttachFile
This will be proposed to the itanium-cxx-abi list once we have some experience
with how well it works; the ABI for this TS should be considered unstable until
it is part of the Itanium C++ ABI.
llvm-svn: 312467
Diffstat (limited to 'clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp')
| -rw-r--r-- | clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp | 14 |
1 files changed, 6 insertions, 8 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 dc6a3635a8e..83cad5cc9b2 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 @@ -4,15 +4,15 @@ // CHECK-DAG: @extern_var_exported = external global // FIXME: Should this be 'external global'? // CHECK-DAG: @inline_var_exported = linkonce_odr global -// CHECK-DAG: @_ZL19static_var_exported = external global +// CHECK-DAG: @_ZW6ModuleE19static_var_exported = external global // CHECK-DAG: @const_var_exported = external constant // // FIXME: The module name should be mangled into all of these. // CHECK-DAG: @extern_var_module_linkage = external global // FIXME: Should this be 'external global'? // CHECK-DAG: @inline_var_module_linkage = linkonce_odr global -// CHECK-DAG: @_ZL25static_var_module_linkage = external global -// CHECK-DAG: @_ZL24const_var_module_linkage = external constant +// CHECK-DAG: @_ZW6ModuleE25static_var_module_linkage = external global +// CHECK-DAG: @_ZW6ModuleE24const_var_module_linkage = external constant module Module; @@ -28,15 +28,13 @@ void use() { (void)&const_var_exported; // FIXME: This symbol should not be visible here. - // CHECK: declare {{.*}}@_ZL26used_static_module_linkagev + // CHECK: declare {{.*}}@_ZW6ModuleE26used_static_module_linkagev used_static_module_linkage(); - // FIXME: The module name should be mangled into the name of this function. - // CHECK: define linkonce_odr {{.*}}@_Z26used_inline_module_linkagev + // CHECK: define linkonce_odr {{.*}}@_ZW6ModuleE26used_inline_module_linkagev used_inline_module_linkage(); - // FIXME: The module name should be mangled into the name of this function. - // CHECK: declare {{.*}}@_Z24noninline_module_linkagev + // CHECK: declare {{.*}}@_ZW6ModuleE24noninline_module_linkagev noninline_module_linkage(); (void)&extern_var_module_linkage; |

