"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


Reply via email to