"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<'_>
) {
Best regards,
Andreas Hindborg
[1]
https://doc.rust-lang.org/reference/conditional-compilation.html#the-cfg_attr-attribute