2009/3/19 Ingo Molnar <mingo@xxxxxxx>: > > * Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > >> On Thu, Mar 19, 2009 at 07:51:22PM +0100, Hannes Eder wrote: >> > When currently running sparse agains the current linux-next tree, a >> > lot of checks produce error messages like this: >> > >> > include/linux/skbuff.h:381:9: error: expected preprocessor identifier >> >> Cute. If anything, this kmemcheck_define_bitfield stuff needs to be moved >> inside the ifdefs. >> >> Folks, this is not a valid C, period. And no, there's no promise >> that gcc won't change its behaviour on such constructs whenever >> they feel like that. >> >> Preprocessor directives do not belong in argument lists. Not >> #ifdef, not #define, not #include; this is undefined behaviour. > > Agreed. > > Vegard, it's this bit: > > kmemcheck_define_bitfield(flags2, { > #ifdef CONFIG_IPV6_NDISC_NODETYPE > __u8 ndisc_nodetype:2; > #endif > #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) > __u8 do_not_encrypt:1; > __u8 requeue:1; > #endif > }); > > Ingo > Hm. Is this really not valid C? It worked with GCC, so I assumed it was. My mistake. Okay, that puts us in a bit of a tight spot, with regards to kmemcheck, I mean. Maybe I should just take up GCC development instead, and implement a -fkmemcheck or something. (To get rid of the bitfield false positives, I mean.) I guess this means that kmemcheck branch should be withdrawn from linux-next, at least temporarily, as I have no immediate workarounds/alternatives. Stephen, can you drop it? Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html