[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <46960225.1030102@gmail.com>
Date: Thu, 12 Jul 2007 12:27:49 +0200
From: Adel Gadllah <adel.gadllah@...il.com>
To: Al Viro <viro@....linux.org.uk>
CC: Alexey Dobriyan <adobriyan@...il.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] fix sparse problems with ARRAY_SIZE
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists