https://gcc.gnu.org/g:57dc3ab97393f526afcc74fa6c82347f3f77402a
commit r15-8399-g57dc3ab97393f526afcc74fa6c82347f3f77402a Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com> Date: Wed Aug 21 17:01:29 2024 +0200 gccrs: 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 0a8fce34a1a9..714507219e02 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)