Re: [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]> |
On Fri, 24 Jul 2026 00:40:04 +0100 "Gary Guo" <[email protected]> wrote: >> 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); > > Hmm, why bother adding a const for this rather than just invoke > > $crate::warn_flags!( > _COND_STR, > const { ... } > ) > > ? Ah, `(const { ... })` works. > Also, the proper fix would be to mark it as used in the `warn_flags` macro > that discard the expression. > > if false { > _ = $flags; > } Yeah, having the callee that discards the argument consume it is more logical than working around it at the caller. I'll send v2 shortly. The same reasoning applies to `$file`. Since there is no warning right now, I'll rename `_COND_STR` to `COND_STR` and consume `$file` in a separate patch for consistency.