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

From: Randy Dunlap
Date: Sun Oct 19 2014 - 13:21:39 EST


[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?
>
> Thanks,
> Mariusz
> --


--
~Randy
--
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/