Re: Sparse warning: "initializer entry defined twice" - sparse can't handle bool?

From: Mariusz Gorski
Date: Mon Oct 20 2014 - 17:00:56 EST


Yes, I've actually used outdated sparse in version 0.4.3. After
updating to the latest one, built from master in git repo, the issue
is gone. Thanks.

On 19 October 2014 23:40, Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxx> wrote:
> On 19/10/14 18:21, Randy Dunlap wrote:
>> [adding linux-sparse mailing list]
>>
>> On 10/19/14 02:46, Mariusz Gorski wrote:
>>> Sparse throws the following warning, which I can't really understand:
>>>
>>> $ make drivers/staging/vt6655/ C=2
>>> [...]
>>> CHECK drivers/staging/vt6655/datarate.c
>>> drivers/staging/vt6655/datarate.c:302:40: warning: Initializer entry
>>> defined twice
>>> drivers/staging/vt6655/datarate.c:302:46: also defined here
>>>
>>> The code looks fine to me:
>>> bool bAutoRate[MAX_RATE] = {true, true, true, true, false, false,
>>> true, true, true, true, true, true};
>>>
>>> I've googled it and found only this LKML discussion:
>>> https://lkml.org/lkml/2010/5/7/31
>>>
>>> I've tested the suggested code sample and here are the results:
>>> $ cat foo.c
>>> typedef _Bool bool;
>>> enum {
>>> false = 0,
>>> true = 1
>>> };
>>> static const bool foo[10] = {
>>> true,
>>> true,
>>> false,
>>> false,
>>> };
>>>
>>> $ sparse foo.c
>>> foo.c:7:8: warning: Initializer entry defined twice
>>> foo.c:8:8: also defined here
>>>
>>> It this a sparse problem?
>
> Yes, I imagine you are using a sparse version of v0.5.0 or
> earlier right?
>
> This was fixed by commit b3e9d87c6 ("sparse: make bits_to_bytes
> round up instead of down", 16-07-2014), which describes to
> v0.5.0-17-gb3e9d87, which has not been included in a released
> version yet. (if you don't mind building from source, you could
> build the master branch using a clone the git repository at
> git://git.kernel.org/pub/scm/devel/sparse/sparse.git).
>
> I'm afraid that I don't know when the next release is due.
>
> HTH
>
> ATB,
> Ramsay Jones
>
>
--
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/