From: Pierre-Emmanuel Patry <[email protected]>

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]>
---
 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 7da137fb5c2..17332a47937 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));
-- 
2.50.1

Reply via email to