2022-06-12 14:37:00

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] module: Fix selfAssignment cppcheck warning

> @@ -33,7 +33,8 @@
> #ifdef CONFIG_STRICT_MODULE_RWX
> # define strict_align(X) PAGE_ALIGN(X)
> #else
> -# define strict_align(X) (X)
> +/* OR with zero to avoid cppcheck selfAssignment warning */
> +# define strict_align(X) ((X) | 0)
> #endif

Can these myopic tools be taught to see around and notice second
definition which does mutate variable so there is no self-assignment?


2022-06-12 16:00:49

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH] module: Fix selfAssignment cppcheck warning



Le 12/06/2022 à 12:46, Alexey Dobriyan a écrit :
>> @@ -33,7 +33,8 @@
>> #ifdef CONFIG_STRICT_MODULE_RWX
>> # define strict_align(X) PAGE_ALIGN(X)
>> #else
>> -# define strict_align(X) (X)
>> +/* OR with zero to avoid cppcheck selfAssignment warning */
>> +# define strict_align(X) ((X) | 0)
>> #endif
>
> Can these myopic tools be taught to see around and notice second
> definition which does mutate variable so there is no self-assignment?

I guess not.

However, usually we use static inlines to avoid that. I'll send v2, will
be cleaner.