From f33bae65a16b6d8c9d4f491638c4728f9c231ed4 Mon Sep 17 00:00:00 2001 From: Owen Avery Date: Fri, 9 May 2025 20:48:18 -0400 Subject: Fix test same_field_name.rs gcc/rust/ChangeLog: * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Keep going after a duplicate field is found. gcc/testsuite/ChangeLog: * rust/execute/same_field_name.rs: Move to... * rust/compile/same_field_name.rs: ...here and adjust expected errors. Signed-off-by: Owen Avery --- gcc/rust/hir/rust-ast-lower-item.cc | 2 +- gcc/testsuite/rust/compile/same_field_name.rs | 8 ++++++++ gcc/testsuite/rust/execute/same_field_name.rs | 8 -------- 3 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/rust/compile/same_field_name.rs delete mode 100644 gcc/testsuite/rust/execute/same_field_name.rs (limited to 'gcc') diff --git a/gcc/rust/hir/rust-ast-lower-item.cc b/gcc/rust/hir/rust-ast-lower-item.cc index 9bb968f..07b1c9d 100644 --- a/gcc/rust/hir/rust-ast-lower-item.cc +++ b/gcc/rust/hir/rust-ast-lower-item.cc @@ -217,7 +217,7 @@ ASTLoweringItem::visit (AST::StructStruct &struct_decl) field.get_outer_attrs ()); if (struct_field_name_exists (fields, translated_field)) - break; + continue; fields.push_back (std::move (translated_field)); } diff --git a/gcc/testsuite/rust/compile/same_field_name.rs b/gcc/testsuite/rust/compile/same_field_name.rs new file mode 100644 index 0000000..8e5b78c --- /dev/null +++ b/gcc/testsuite/rust/compile/same_field_name.rs @@ -0,0 +1,8 @@ +// https://doc.rust-lang.org/error_codes/E0124.html +fn main() { + struct Foo { + field1: i32, + field1: i32, // { dg-error "field .field1. is already declared" } + field1: i32, // { dg-error "field .field1. is already declared" } + } +} diff --git a/gcc/testsuite/rust/execute/same_field_name.rs b/gcc/testsuite/rust/execute/same_field_name.rs deleted file mode 100644 index d57562b..0000000 --- a/gcc/testsuite/rust/execute/same_field_name.rs +++ /dev/null @@ -1,8 +0,0 @@ -// https://doc.rust-lang.org/error_codes/E0124.html -fn main() { - struct Foo { - field1: i32, // { dg-error "field .field1. is already declared" } - field1: i32, // { dg-error "field .field1. is already declared" } - field1: i32, // { dg-error "field .field1. is already declared" } - } -} -- cgit v1.1