]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: add unused visibilities lint
authorLucas Ly Ba <lucas.ly-ba@outlook.com>
Sat, 27 Jun 2026 21:45:56 +0000 (23:45 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Wed, 8 Jul 2026 15:22:46 +0000 (17:22 +0200)
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>
gcc/rust/checks/lints/unused/rust-unused-checker.cc
gcc/testsuite/rust/compile/unused-visibilities_0.rs [new file with mode: 0644]

index 571e31e430aeb629e804530807b7485285643b8b..6fd6c6efe1ca20281f904546ecb417febd3df17d 100644 (file)
@@ -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 (file)
index 0000000..d158ab6
--- /dev/null
@@ -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 }