[gccrs COMMIT] gccrs: add unused visibilities lint

gerris.rs@gmail.com gerris.rs@gmail.com
Sat Jun 27 23:24:57 GMT 2026


From: Lucas Ly Ba <lucas.ly-ba@outlook.com>

Warn on a visibility qualifier applied to a `const _` item, as it has no
effect.

gcc/rust/ChangeLog:

	* checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit):
	Warn on a visibility qualifier on a `const _` item.

gcc/testsuite/ChangeLog:

	* rust/compile/unused-visibilities_0.rs: New test.

Signed-off-by: Lucas Ly Ba <lucas.ly-ba@outlook.com>
---
This change was merged into the gccrs repository and is posted here for
upstream visibility and potential drive-by review, as requested by GCC
release managers.
Each commit email contains a link to its details on github from where you can
find the Pull-Request and associated discussions.


Commit on github: https://github.com/Rust-GCC/gccrs/commit/6a15fac208959bb39a858581ccdacef8ca23684b

The commit has NOT been mentioned in any issue.

The commit has been mentioned in the following pull-request(s):
 - https://github.com/Rust-GCC/gccrs/pull/4644

 gcc/rust/checks/lints/unused/rust-unused-checker.cc | 6 ++++++
 gcc/testsuite/rust/compile/unused-visibilities_0.rs | 6 ++++++
 2 files changed, 12 insertions(+)
 create mode 100644 gcc/testsuite/rust/compile/unused-visibilities_0.rs

diff --git a/gcc/rust/checks/lints/unused/rust-unused-checker.cc b/gcc/rust/checks/lints/unused/rust-unused-checker.cc
index 571e31e43..6fd6c6efe 100644
--- a/gcc/rust/checks/lints/unused/rust-unused-checker.cc
+++ b/gcc/rust/checks/lints/unused/rust-unused-checker.cc
@@ -58,6 +58,12 @@ UnusedChecker::visit (HIR::ConstantItem &item)
     rust_warning_at (item.get_locus (), OPT_Wunused_variable,
 		     "unused variable %qs",
 		     item.get_identifier ().as_string ().c_str ());
+
+  // The unused_visibilities lint: a visibility qualifier on a `const _` item
+  // has no effect.
+  if (var_name == "_" && item.get_visibility ().is_public ())
+    rust_warning_at (item.get_locus (), OPT_Wunused_variable,
+		     "visibility qualifier on a %<const _%> item is unused");
 }
 
 void
diff --git a/gcc/testsuite/rust/compile/unused-visibilities_0.rs b/gcc/testsuite/rust/compile/unused-visibilities_0.rs
new file mode 100644
index 000000000..d158ab657
--- /dev/null
+++ b/gcc/testsuite/rust/compile/unused-visibilities_0.rs
@@ -0,0 +1,6 @@
+// { dg-additional-options "-frust-unused-check-2.0" }
+#![feature(no_core)]
+#![no_core]
+
+pub const _: i32 = 0;
+// { dg-warning "visibility qualifier on a .const _. item is unused" "" { target *-*-* } .-1 }

base-commit: 97cb6d68d3773e1243df9e50adc8eac2d20b81cd
-- 
2.54.0



More information about the Gcc-rust mailing list