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/codegen-basics.cppm | |
| 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/codegen-basics.cppm')
| -rw-r--r-- | clang/test/CXX/modules-ts/codegen-basics.cppm | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/clang/test/CXX/modules-ts/codegen-basics.cppm b/clang/test/CXX/modules-ts/codegen-basics.cppm index d1552d9edd2..a85e12df26f 100644 --- a/clang/test/CXX/modules-ts/codegen-basics.cppm +++ b/clang/test/CXX/modules-ts/codegen-basics.cppm @@ -4,20 +4,18 @@ export module FooBar; export { - // CHECK-LABEL: define i32 @_Z1fv( + // CHECK-DAG: define i32 @_Z1fv( int f() { return 0; } } -// CHECK-LABEL: define weak_odr void @_Z2f2v( +// CHECK-DAG: define weak_odr void @_ZW6FooBarE2f2v( inline void f2() { } -// FIXME: Emit global variables and their initializers with this TU. -// Emit an initialization function that other TUs can call, with guard variable. - -// FIXME: Mangle non-exported symbols so they don't collide with -// non-exported symbols from other modules? +// CHECK-DAG: define void @_ZW6FooBarE2f3v( +static void f3() {} +export void use_f3() { f3(); } -// FIXME: Formally-internal-linkage symbols that are used from an exported -// symbol need a mangled name and external linkage. +// FIXME: Emit global variables and their initializers with this TU. +// Emit an initialization function that other TUs can call, with guard variable? // FIXME: const-qualified variables don't have implicit internal linkage when owned by a module. |

