]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: add redudant semicolon lint
authorLucas Ly Ba <lucas.ly-ba@outlook.com>
Tue, 6 Jan 2026 11:21:13 +0000 (11:21 +0000)
committerArthur Cohen <arthur.cohen@embecosm.com>
Fri, 16 Jan 2026 16:32:07 +0000 (17:32 +0100)
gcc/rust/ChangeLog:

* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
Emit warning in empty statement visitor.
* checks/lints/unused/rust-unused-checker.h:
Likewise.

gcc/testsuite/ChangeLog:

* rust/compile/redundant-semicolons_0.rs: New test.

Signed-off-by: Lucas Ly Ba <lucas.ly-ba@outlook.com>
gcc/rust/checks/lints/unused/rust-unused-checker.cc
gcc/rust/checks/lints/unused/rust-unused-checker.h
gcc/testsuite/rust/compile/redundant-semicolons_0.rs [new file with mode: 0644]

index 45715dac43e7510ed5a48a2446928b76126790f4..235acd6a406575d2248c313c9ce8d8974f1a2eec 100644 (file)
@@ -117,5 +117,12 @@ UnusedChecker::visit (HIR::StructPatternFieldIdent &pattern)
                     pattern.get_identifier ().as_string ().c_str ());
 }
 
+void
+UnusedChecker::visit (HIR::EmptyStmt &stmt)
+{
+  rust_warning_at (stmt.get_locus (), OPT_Wunused_variable,
+                  "unnecessary trailing semicolons");
+}
+
 } // namespace Analysis
 } // namespace Rust
index ac7d2169781efc29e67cd912da762a1afe35896a..061d0c6f0029c2accd773b7fe4959ea37d8d5724 100644 (file)
@@ -43,6 +43,7 @@ private:
   virtual void visit (HIR::IdentifierPattern &identifier) override;
   virtual void visit (HIR::AssignmentExpr &identifier) override;
   virtual void visit (HIR::StructPatternFieldIdent &identifier) override;
+  virtual void visit (HIR::EmptyStmt &stmt) override;
 };
 } // namespace Analysis
 } // namespace Rust
diff --git a/gcc/testsuite/rust/compile/redundant-semicolons_0.rs b/gcc/testsuite/rust/compile/redundant-semicolons_0.rs
new file mode 100644 (file)
index 0000000..57d7c9a
--- /dev/null
@@ -0,0 +1,10 @@
+// { dg-additional-options "-frust-unused-check-2.0" }
+
+pub fn foo() -> i32 
+{
+    let a = 32;;
+// { dg-warning "unnecessary trailing semicolons" "" { target *-*-* } .-1 }
+    return a
+}
+
+