aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2024-12-16 14:17:29 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-21 12:55:44 +0100
commitf8aa5ececd42ad2cefa837a99756300f41bc4d5a (patch)
tree8d189877d5a17a7f96615a9d2612a31efd4b154f /gcc
parented75c2b000afe0a3c82c696554122bbcdad2b727 (diff)
downloadgcc-f8aa5ececd42ad2cefa837a99756300f41bc4d5a.zip
gcc-f8aa5ececd42ad2cefa837a99756300f41bc4d5a.tar.gz
gcc-f8aa5ececd42ad2cefa837a99756300f41bc4d5a.tar.bz2
gccrs: lang-item: Add Option::{None, Some}, Iterator::next, IntoIter::into_iter
gcc/rust/ChangeLog: * util/rust-lang-item.h: Add new lang items. * util/rust-lang-item.cc: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/util/rust-lang-item.cc6
-rw-r--r--gcc/rust/util/rust-lang-item.h9
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-lang-item.cc b/gcc/rust/util/rust-lang-item.cc
index 216202a..c4c1d1c 100644
--- a/gcc/rust/util/rust-lang-item.cc
+++ b/gcc/rust/util/rust-lang-item.cc
@@ -92,6 +92,12 @@ const BiMap<std::string, LangItem::Kind> Rust::LangItem::lang_items = {{
{"str", Kind::STR},
{"f32_runtime", Kind::F32_RUNTIME},
{"f64_runtime", Kind::F64_RUNTIME},
+
+ {"Some", Kind::OPTION_SOME},
+ {"None", Kind::OPTION_NONE},
+
+ {"into_iter", Kind::INTOITER_INTOITER},
+ {"next", Kind::ITERATOR_NEXT},
}};
tl::optional<LangItem::Kind>
diff --git a/gcc/rust/util/rust-lang-item.h b/gcc/rust/util/rust-lang-item.h
index 66d26d0..9e432e2 100644
--- a/gcc/rust/util/rust-lang-item.h
+++ b/gcc/rust/util/rust-lang-item.h
@@ -26,6 +26,9 @@ namespace Rust {
class LangItem
{
public:
+ // FIXME: We should clean up that enum to make it more inline with the list of
+ // lang-items in Rust 1.49
+ // https://github.com/rust-lang/rust/blob/1.49.0/compiler/rustc_hir/src/lang_items.rs
enum class Kind
{
// https://github.com/rust-lang/rust/blob/master/library/core/src/ops/arith.rs
@@ -117,6 +120,12 @@ public:
STR,
F32_RUNTIME,
F64_RUNTIME,
+
+ OPTION_SOME,
+ OPTION_NONE,
+
+ INTOITER_INTOITER,
+ ITERATOR_NEXT,
};
static const BiMap<std::string, Kind> lang_items;