[gcc r17-3110] gccrs: add unused braces lint

Arthur Cohen via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:414d7946327e2b9c4b73b35b43024b1c411b5ced

commit r17-3110-g414d7946327e2b9c4b73b35b43024b1c411b5ced
Author: Lucas Ly Ba <[email protected]>
Date:   Fri Jun 26 22:33:18 2026 +0200

    gccrs: add unused braces lint
    
    gcc/rust/ChangeLog:
    
            * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
            Warn on unnecessary braces around an assigned value.
    
    gcc/testsuite/ChangeLog:
    
            * rust/compile/unused-braces_0.rs: New test.
    
    Signed-off-by: Lucas Ly Ba <[email protected]>

Diff:
---
 gcc/rust/checks/lints/unused/rust-unused-checker.cc | 9 +++++++++
 gcc/testsuite/rust/compile/unused-braces_0.rs       | 8 ++++++++
 2 files changed, 17 insertions(+)

diff --git a/gcc/rust/checks/lints/unused/rust-unused-checker.cc b/gcc/rust/checks/lints/unused/rust-unused-checker.cc
index 14e2df8dac87..2c521634d8b7 100644
--- a/gcc/rust/checks/lints/unused/rust-unused-checker.cc
+++ b/gcc/rust/checks/lints/unused/rust-unused-checker.cc
@@ -330,6 +330,15 @@ UnusedChecker::visit (HIR::LetStmt &stmt)
 			 "unused doc comment");
 	break;
       }
+  if (stmt.has_init_expr ()
+      && stmt.get_init_expr ().get_expression_type ()
+	   == HIR::Expr::ExprType::Block)
+    {
+      auto &block = static_cast<HIR::BlockExpr &> (stmt.get_init_expr ());
+      if (block.get_statements ().empty () && block.has_expr ())
+	rust_warning_at (block.get_locus (), OPT_Wunused,
+			 "unnecessary braces around assigned value");
+    }
   walk (stmt);
 }
 
diff --git a/gcc/testsuite/rust/compile/unused-braces_0.rs b/gcc/testsuite/rust/compile/unused-braces_0.rs
new file mode 100644
index 000000000000..d1cd3bbdf95e
--- /dev/null
+++ b/gcc/testsuite/rust/compile/unused-braces_0.rs
@@ -0,0 +1,8 @@
+// { dg-additional-options "-frust-unused-check-2.0" }
+#![feature(no_core)]
+#![no_core]
+
+pub fn foo() {
+    let _x = { 5 };
+// { dg-warning "unnecessary braces around assigned value" "" { target *-*-* } .-1 }
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.