I am very new to sparse
and i am using it to clean the noise from the code. Recently, somewhere in code line: kzalloc(sizeof(bool) * nvhost_syncpt_nb_pts(sp), GFP_KERNEL);
I encountered this sparse
warning:
warning: expression using sizeof bool
I wonder, why sparse
is reporting this warning. On googling, I found that sizeof(bool) is compiler dependent which is very obvious. Please help me why this warning is raised by sparse
which i think should not be reported ? Please correct me if i am wrong.
I am using gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
. Let's say bool is defined here as:
#if !defined(__cplusplus)
# if defined(_MSC_VER) || !defined(__STDC_VERSION__) || \
(__STDC_VERSION__ < 199901L)
// The Visual Studio C compiler and older versions of GCC do not support C99
// and thus have no bool or stdbool.h. Make a simple definition of bool,
// true, and false to make this deprecated interface compile in C. Force it
// to 1 byte to have some chance of ABI compatibility between C and C++, in
// case we don't remove this.
typedef char bool;
# define false 0
# define true 1
# else
// In C99-compliant compilers, we can include stdbool.h to get a bool
// definition.
# include <stdbool.h>
# endif
#endif
/**
* @}
* End addtogroup PP
*/
#endif /* PPAPI_C_DEV_DEPRECATED_BOOL_H_ */