diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-10-19 18:02:36 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-10-20 16:10:15 +0100 |
commit | 678bf852435aca6de25704ca417fab257fe03da9 (patch) | |
tree | 7eb78257e1d85eb7f2086e06867091f71a22cc34 /gcc/rust/backend/rust-mangle.cc | |
parent | feaa40602b7ecad36de8dcb6c387e686d04ce207 (diff) | |
download | gcc-678bf852435aca6de25704ca417fab257fe03da9.zip gcc-678bf852435aca6de25704ca417fab257fe03da9.tar.gz gcc-678bf852435aca6de25704ca417fab257fe03da9.tar.bz2 |
Closure support at CallExpr
Closures's need to generate their specific function and setup their
argument passing based on the signiture specified in libcore. We can get
this information based on the specified bound on the closure.
Addresses #195
Diffstat (limited to 'gcc/rust/backend/rust-mangle.cc')
-rw-r--r-- | gcc/rust/backend/rust-mangle.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/rust/backend/rust-mangle.cc b/gcc/rust/backend/rust-mangle.cc index 4d20207..83aefa7 100644 --- a/gcc/rust/backend/rust-mangle.cc +++ b/gcc/rust/backend/rust-mangle.cc @@ -13,6 +13,8 @@ static const std::string kMangledRef = "$RF$"; static const std::string kMangledPtr = "$BP$"; static const std::string kMangledLeftSqParen = "$u5b$"; // [ static const std::string kMangledRightSqParen = "$u5d$"; // ] +static const std::string kMangledLeftBrace = "$u7b$"; // { +static const std::string kMangledRightBrace = "$u7d$"; // } static const std::string kQualPathBegin = "_" + kMangledSubstBegin; static const std::string kMangledComma = "$C$"; @@ -66,6 +68,10 @@ legacy_mangle_name (const std::string &name) m = kMangledLeftSqParen; else if (c == ']') m = kMangledRightSqParen; + else if (c == '{') + m = kMangledLeftBrace; + else if (c == '}') + m = kMangledRightBrace; else if (c == ',') m = kMangledComma; else if (c == ':') |