aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-mangle.cc
diff options
context:
space:
mode:
authorCohenArthur <arthur.cohen@epita.fr>2021-08-24 21:57:54 +0200
committerCohenArthur <arthur.cohen@epita.fr>2021-09-05 20:52:55 +0200
commit04ea1955ee6a70390a171328c537ed121eb05078 (patch)
tree84da324a046eacdce472f647445256fc9f4a1cff /gcc/rust/backend/rust-mangle.cc
parent91507076503d57982218c726a712c48adc7a4e1d (diff)
downloadgcc-04ea1955ee6a70390a171328c537ed121eb05078.zip
gcc-04ea1955ee6a70390a171328c537ed121eb05078.tar.gz
gcc-04ea1955ee6a70390a171328c537ed121eb05078.tar.bz2
mangling: Add option to choose mangling version
Diffstat (limited to 'gcc/rust/backend/rust-mangle.cc')
-rw-r--r--gcc/rust/backend/rust-mangle.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/rust/backend/rust-mangle.cc b/gcc/rust/backend/rust-mangle.cc
index f2e6e15..40822b4 100644
--- a/gcc/rust/backend/rust-mangle.cc
+++ b/gcc/rust/backend/rust-mangle.cc
@@ -11,6 +11,8 @@ static const std::string kMangledSubstEnd = "$GT$";
namespace Rust {
namespace Compile {
+Mangler::MangleVersion Mangler::version = MangleVersion::LEGACY;
+
static std::string
legacy_mangle_name (const std::string &name)
{
@@ -78,8 +80,9 @@ legacy_mangle_self (const TyTy::BaseType *self)
}
static std::string
-legacy_mangle_item (const TyTy::BaseType *ty, const Resolver::CanonicalPath &path,
- const std::string &crate_name)
+legacy_mangle_item (const TyTy::BaseType *ty,
+ const Resolver::CanonicalPath &path,
+ const std::string &crate_name)
{
const std::string hash = legacy_hash (ty->as_string ());
const std::string hash_sig = legacy_mangle_name (hash);
@@ -90,10 +93,8 @@ legacy_mangle_item (const TyTy::BaseType *ty, const Resolver::CanonicalPath &pat
// FIXME this is a wee bit broken
static std::string
-legacy_mangle_impl_item (const TyTy::BaseType *self,
- const TyTy::BaseType *ty,
- const std::string &name,
- const std::string &crate_name)
+legacy_mangle_impl_item (const TyTy::BaseType *self, const TyTy::BaseType *ty,
+ const std::string &name, const std::string &crate_name)
{
const std::string hash = legacy_hash (ty->as_string ());
const std::string hash_sig = legacy_mangle_name (hash);
@@ -116,7 +117,8 @@ legacy_mangle_impl_item (const TyTy::BaseType *self,
// {}
std::string
-Mangler::mangle_item (const TyTy::BaseType *ty, const Resolver::CanonicalPath &path,
+Mangler::mangle_item (const TyTy::BaseType *ty,
+ const Resolver::CanonicalPath &path,
const std::string &crate_name) const
{
switch (version)
@@ -145,5 +147,6 @@ Mangler::mangle_impl_item (const TyTy::BaseType *self, const TyTy::BaseType *ty,
gcc_unreachable ();
}
}
+
} // namespace Compile
} // namespace Rust