https://gcc.gnu.org/g:7eef183ae85eb5bd4756061dbe9ad0a2ecc9dce7
commit r16-4755-g7eef183ae85eb5bd4756061dbe9ad0a2ecc9dce7 Author: Pierre-Emmanuel Patry <[email protected]> Date: Tue Aug 5 10:55:33 2025 +0200 gccrs: Explicitly use an empty vector for structural eq Previous code was technically valid since the moved from vector was empty but explicitly setting it empty with it's own name will help. gcc/rust/ChangeLog: * expand/rust-derive-eq.cc: Use empty vector explicitly. Signed-off-by: Pierre-Emmanuel Patry <[email protected]> Diff: --- gcc/rust/expand/rust-derive-eq.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-derive-eq.cc b/gcc/rust/expand/rust-derive-eq.cc index 7da137fb5c27..17332a47937e 100644 --- a/gcc/rust/expand/rust-derive-eq.cc +++ b/gcc/rust/expand/rust-derive-eq.cc @@ -128,9 +128,13 @@ DeriveEq::eq_impls ( auto eq_impl = builder.trait_impl (eq, std::move (eq_generics.self_type), std::move (trait_items), std::move (eq_generics.impl)); + + // StructuralEq is a marker trait + decltype (trait_items) steq_trait_items = {}; + auto steq_impl = builder.trait_impl (steq, std::move (steq_generics.self_type), - std::move (trait_items), + std::move (steq_trait_items), std::move (steq_generics.impl)); return vec (std::move (eq_impl), std::move (steq_impl));
