[PATCH] mtd: maps: fix -Wvoid-pointer-to-enum-cast warning
Krzysztof Kozlowski
krzysztof.kozlowski at linaro.org
Tue Aug 15 14:15:23 PDT 2023
On 15/08/2023 23:11, Justin Stitt wrote:
> When building with clang 18 I see the following warning:
> | drivers/mtd/maps/physmap-versatile.c:209:25: warning: cast to smaller
> | integer type 'enum versatile_flashprot' from 'const void *' [-Wvoid-pointer-to-enum-cast]
> | 209 | versatile_flashprot = (enum versatile_flashprot)devid->data;
>
> This is due to the fact that `devid->data` is a void* while `enum
> versatile_flashprot` has the size of an int. This leads to truncation
> and possible data loss.
Cast does not solve truncation. This part of commit msg suggests that
you actually fix real issue... and that is an issue, because then
AUTOSEL will grab it. This is just compiler warning silencing and rather
coding standard correctness, no real fix, so please drop the sentence.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/1910
> Reported-by: Nathan Chancellor <nathan at kernel.org>
> Signed-off-by: Justin Stitt <justinstitt at google.com>
> ---
> Note: There is likely no data loss occurring here due to the fact that
> `enum versatile_flashprot` has only a few enumerated fields, none of
> which are large enough to cause data loss.
If there is a data loss, cast does not solve it.
> Nonetheless, this patch helps
> towards the goal of eventually enabling this warning for more builds.
>
> Signed-off-by: Justin Stitt <justinstitt at google.com>
Best regards,
Krzysztof
More information about the linux-mtd
mailing list