aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2025-01-30 14:19:03 +0100
committerCohenArthur <arthur.cohen@embecosm.com>2025-02-02 18:28:58 +0000
commit9d6bd59e86946aeea41551f8ab227f3954235029 (patch)
treebbd34c3d59272d13413d3f62391868daaa897247 /gcc
parentadf6afb8205de374e95d8fb08573428630289547 (diff)
downloadgcc-9d6bd59e86946aeea41551f8ab227f3954235029.zip
gcc-9d6bd59e86946aeea41551f8ab227f3954235029.tar.gz
gcc-9d6bd59e86946aeea41551f8ab227f3954235029.tar.bz2
lang-items: Add structural_{peq, teq}
These lang items are used when deriving Eq and PartialEq, and will be checked when compiling pattern matching. gcc/rust/ChangeLog: * util/rust-lang-item.cc: New items. * util/rust-lang-item.h: Likewise. gcc/testsuite/ChangeLog: * rust/compile/structural-eq-peq.rs: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/util/rust-lang-item.cc3
-rw-r--r--gcc/rust/util/rust-lang-item.h3
-rw-r--r--gcc/testsuite/rust/compile/structural-eq-peq.rs9
3 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 091c6b6..9fcd325 100644
--- a/gcc/rust/util/rust-lang-item.cc
+++ b/gcc/rust/util/rust-lang-item.cc
@@ -112,6 +112,9 @@ const BiMap<std::string, LangItem::Kind> Rust::LangItem::lang_items = {{
{"from_ok", Kind::TRY_FROM_OK},
{"from", Kind::FROM_FROM},
+
+ {"structural_peq", Kind::STRUCTURAL_PEQ},
+ {"structural_teq", Kind::STRUCTURAL_TEQ},
}};
tl::optional<LangItem::Kind>
diff --git a/gcc/rust/util/rust-lang-item.h b/gcc/rust/util/rust-lang-item.h
index b5abf61..61d6454e 100644
--- a/gcc/rust/util/rust-lang-item.h
+++ b/gcc/rust/util/rust-lang-item.h
@@ -144,6 +144,9 @@ public:
// NOTE: This is not a lang item in later versions of Rust
FROM_FROM,
+
+ STRUCTURAL_PEQ,
+ STRUCTURAL_TEQ,
};
static const BiMap<std::string, Kind> lang_items;
diff --git a/gcc/testsuite/rust/compile/structural-eq-peq.rs b/gcc/testsuite/rust/compile/structural-eq-peq.rs
new file mode 100644
index 0000000..d04c295
--- /dev/null
+++ b/gcc/testsuite/rust/compile/structural-eq-peq.rs
@@ -0,0 +1,9 @@
+#[lang = "structural_peq"]
+pub trait StructuralPartialEq {
+ // Empty.
+}
+
+#[lang = "structural_teq"]
+pub trait StructuralEq {
+ // Empty.
+}