From dd8b5337e9da480640598008de6211dab68c20dc Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 4 Sep 2017 05:37:53 +0000 Subject: 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 --- clang/test/CXX/modules-ts/codegen-basics.cppm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'clang/test/CXX/modules-ts/codegen-basics.cppm') 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. -- cgit v1.2.3