Re: [PATCH] fix sparse problems with ARRAY_SIZE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Al Viro wrote:
On Tue, Jul 10, 2007 at 09:58:18PM +0100, Al Viro wrote:
On Tue, Jul 10, 2007 at 11:40:33PM +0400, Alexey Dobriyan wrote:
On Tue, Jul 10, 2007 at 06:09:48PM +0200, Adel Gadllah wrote:
--- linux-2.6.orig/include/linux/kernel.h
+++ linux-2.6/include/linux/kernel.h
@@ -35,7 +35,11 @@ extern const char linux_proc_banner[];
 #define ALIGN(x,a)		__ALIGN_MASK(x,(typeof(x))(a)-1)
 #define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask))
+#ifdef __CHECKER_
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+#else
 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+#endif
Al Viro recently gave a hint that he have patches for sparse to not give
spurious ARRAY_SIZE warnings.
I do.  Right now it's either 2 or 4 patches away from mainline sparse,
depending on reordering...  I'm splitting the last patch in series,
hopefully will reorder and send tonight.

Basically, it's a matter of getting __builtin_compatible_types_p()
implementation (really - evaluate.c:type_difference()) somewhere sane.

Try git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse.git/,
the branch is type_difference

ok a proper fix is always better than a workaround ;)
it seems that ARRAY_SIZE is defined multiple times....
seem wrong... shouldn't all users include linux/kernel.h and use that one?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux