Re: [PATCH] fix sparse problems with ARRAY_SIZE

From: Al Viro
Date: Tue Jul 10 2007 - 16:58:30 EST


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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/