On Tue Feb 24, 2026 at 8:51 PM JST, Andreas Hindborg wrote: > "Alexandre Courbot" <[email protected]> writes: > >> If `CONFIG_PRINTK` is not set, then the following warnings are issued >> during build: >> >> warning: unused variable: `args` >> --> ../rust/kernel/kunit.rs:16:12 >> | >> 16 | pub fn err(args: fmt::Arguments<'_>) { >> | ^^^^ help: if this is intentional, prefix it with an >> underscore: `_args` >> | >> = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by >> default >> >> warning: unused variable: `args` >> --> ../rust/kernel/kunit.rs:32:13 >> | >> 32 | pub fn info(args: fmt::Arguments<'_>) { >> | ^^^^ help: if this is intentional, prefix it with an >> underscore: `_args` >> >> Fix this by adding a no-op assignment using `args` when `CONFIG_PRINTK` >> is not set. >> >> Fixes: a66d733da801 ("rust: support running Rust documentation tests as >> KUnit ones") >> Signed-off-by: Alexandre Courbot <[email protected]> >> --- >> Changes in v2: >> - Use a no-op assignment instead of the wider `#[allow(unused_variables)]`. >> - Link to v1: >> https://patch.msgid.link/[email protected] >> --- >> rust/kernel/kunit.rs | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/rust/kernel/kunit.rs b/rust/kernel/kunit.rs >> index f93f24a60bdd..a1edf7491579 100644 >> --- a/rust/kernel/kunit.rs >> +++ b/rust/kernel/kunit.rs >> @@ -14,6 +14,10 @@ >> /// Public but hidden since it should only be used from KUnit generated >> code. >> #[doc(hidden)] >> pub fn err(args: fmt::Arguments<'_>) { >> + // `args` is unused if `CONFIG_PRINTK` is not set - this avoids a >> build-time warning. >> + #[cfg(not(CONFIG_PRINTK))] >> + let _ = args; > > I think (didn't test) that you can use a conditional attribute [1] instead: > > pub fn err( > #[cfg_attr(not(CONFIG_PRINTK), expect(unused))] > args: fmt::Arguments<'_> > ) {
Yup, that works as well, and I think I like it better as it is more localized. Alice, WDYT?

