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

From: Mariusz Gorski
Date: Sun Oct 19 2014 - 05:46:36 EST


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