[PATCH] cpufreq: mvebu: fix integer to pointer cast
From: Mason <hidden>
Date: 2016-06-09 07:53:14
Also in:
linux-pm
On 09/06/2016 09:07, Arnd Bergmann wrote:
On Wednesday, June 8, 2016 9:59:26 AM CEST Ben Dooks wrote:quoted
On 08/06/16 08:56, Mason wrote:quoted
On 07/06/2016 13:30, Ben Dooks wrote:quoted
Fix the use of 0 instead of NULL to clk_get() call. This stops the following warning: drivers/cpufreq/mvebu-cpufreq.c:73:40: warning: Using plain integer as NULL pointerMay I ask which compiler/version produced that diagnostic?I was running with "make C=2 bzImage" for ARM multi_v7_config $ sparse --version v0.5.0
Ben, in my nitpicker's opinion, your patch subject is not quite correct. There is, obviously, no cast in the statement clk = clk_get(cpu_dev, 0); There is, however, an implicit conversion (as if by assignment) which converts the second argument (a null pointer constant) to an actual null pointer. I can't find a better wording than "Use NULL instead of unadorned 0 for null pointer constants" or "Use NULL explicitly for pointer arguments" As a funky side note, any constant expression with the value 0 is a valid null pointer constant. Thus the expression 42/666 is a valid equivalent to NULL ;-) Another one of C's historic warts.
I believe gcc-6 will also produce a similar warning when building with 'make W=1'.
Probably not. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html -Wzero-as-null-pointer-constant (C++ and Objective-C++ only) Warn when a literal '0' is used as null pointer constant. This can be useful to facilitate the conversion to nullptr in C++11. $ cat test.c extern void foo(void *p); void bar(void) { foo(0); } $ gcc-6 -Wall -Wextra -c test.c /* NO WARNING */ $ gcc-6 -Wall -Wextra -Wzero-as-null-pointer-constant -c test.c cc1: warning: command line option '-Wzero-as-null-pointer-constant' is valid for C++/ObjC++ but not for C Regards.