]> git.feebdaed.xyz Git - 0xmirror/gcc.git/commit
gccrs: add unused-assignments lint
authorLucas Ly Ba <lucas.ly-ba@outlook.com>
Fri, 14 Nov 2025 20:36:32 +0000 (20:36 +0000)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 23 Dec 2025 11:16:48 +0000 (12:16 +0100)
commite9e13f3895aeaaf7c388b51d471eb5b908a5e556
tree8a1d83db76fe179fa5b2d3f01548a6859d376ce4
parentff407338c8d64c13c5f8ab3c197c0506b09f8b13
gccrs: add unused-assignments lint

gcc/rust/ChangeLog:

* checks/lints/unused-var/rust-unused-var-checker.cc (UnusedVarChecker):
Implement unused assignments warning.
(UnusedVarChecker::go): Remove unique pointer unused var context.
(UnusedVarChecker::visit): Visit AssignExpr in HIR default visitor.
* checks/lints/unused-var/rust-unused-var-checker.h: Add visit method.
* checks/lints/unused-var/rust-unused-var-collector.cc (UnusedVarCollector):
Collect warnings for assignments.
(UnusedVarCollector::visit): Visit AssignExpr in HIR default visitor.
* checks/lints/unused-var/rust-unused-var-collector.h: Add visit method.
* checks/lints/unused-var/rust-unused-var-context.cc (UnusedVarContext::add_assign):
Add assignment in map.
(UnusedVarContext::remove_assign): Remove assignment in map.
(UnusedVarContext::is_variable_assigned): Check if a variable is assigned.
* checks/lints/unused-var/rust-unused-var-context.h: Add a map to stock assignments.

gcc/testsuite/ChangeLog:

* rust/compile/issue-4260_0.rs: New test.

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