[PATCH v1] rust: bug: prevent dead_code warning from warn_on!'s flags constant
FUJITA Tomonori <[email protected]>
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
From: FUJITA Tomonori <[email protected]> Fix the following dead_code warning on some configurations in an atomic development branch: warning: constant `WARN_ON_FLAGS` is never used --> /linux/rust/kernel/bug.rs:126:19 | 126 | const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN); | ^^^^^^^^^^^^^ | ::: /linux/rust/kernel/sync/srcu.rs:106:12 | 106 | if crate::warn_on!( | ____________- 107 | | // SAFETY: By the type invariants, `self` contains a valid and pinned `struct srcu_struct` 108 | | // and `srcu_readers_active()` only checks the active reader count. 109 | | unsafe { bindings::srcu_readers_active(ptr) } 110 | | ) { | |_________- in this macro invocation | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default = note: this warning originates in the macro `crate::warn_on` (in Nightly builds, run with -Z macro-backtrace for more info) The warn_on! macro always defines a WARN_ON_FLAGS constant and hands it to warn_flags!. On configurations where warn_flags! does not reference its flags argument (the LOONGARCH/ARM variant, which only calls WARN_ON(), and the !CONFIG_BUG no-op variant), the constant is left unused and triggers a dead_code warning. The warning only surfaces for callers inside the kernel crate itself: uses from other crates expand an external macro, so the lint is suppressed there. Rename the constant to _WARN_ON_FLAGS so the underscore marks it as possibly-unused, matching the existing _COND_STR constant in the same macro. The name is still referenceable, so configurations that do use the flags are unaffected. Signed-off-by: FUJITA Tomonori <[email protected]> --- rust/kernel/bug.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/kernel/bug.rs b/rust/kernel/bug.rs index ed943960f851..2fd7ee25abcb 100644 --- a/rust/kernel/bug.rs +++ b/rust/kernel/bug.rs @@ -123,9 +123,9 @@ macro_rules! warn_on { const _COND_STR: &str = file!(); if cond { - const WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN); + const _WARN_ON_FLAGS: u32 = $crate::bug::bugflag_taint($crate::bindings::TAINT_WARN); - $crate::warn_flags!(_COND_STR, WARN_ON_FLAGS); + $crate::warn_flags!(_COND_STR, _WARN_ON_FLAGS); } cond }}; base-commit: 880c43b185ca52239e75bc546cc4f4d9154d0fed -- 2.43.0