https://gcc.gnu.org/g:76131dd1d561bdc2064e9f91ed19c275d09e7166

commit 76131dd1d561bdc2064e9f91ed19c275d09e7166
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Wed Aug 21 17:01:29 2024 +0200

    Fix missing error on duplicated nodes
    
    When we tried to insert a shadowable node and another shadowable node has
    been inserted before, we didn't emit any error if the node has already
    been inserted previously and failed silently.
    
    gcc/rust/ChangeLog:
    
            * resolve/rust-rib.cc (Rib::insert): Emit an error when trying to
            insert an already inserted node.
    
    Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>

Diff:
---
 gcc/rust/resolve/rust-rib.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/resolve/rust-rib.cc b/gcc/rust/resolve/rust-rib.cc
index a73e2bd6f757..945e1c333caf 100644
--- a/gcc/rust/resolve/rust-rib.cc
+++ b/gcc/rust/resolve/rust-rib.cc
@@ -92,9 +92,9 @@ Rib::insert (std::string name, Definition def)
        {
          if (std::find (current.ids.cbegin (), current.ids.cend (), id)
              == current.ids.cend ())
-           {
-             current.ids.push_back (id);
-           }
+           current.ids.push_back (id);
+         else
+           return tl::make_unexpected (DuplicateNameError (name, id));
        }
     }
   else if (it->second.shadowable)

Reply via email to