Josh Triplett <josh@xxxxxxxxxxxxxxxx> writes: > On Tue, Aug 23, 2011 at 11:04:08AM -0700, Ben Pfaff wrote: >> Josh Triplett <josh@xxxxxxxxxxxxxxxx> writes: >> >> > On Tue, Aug 23, 2011 at 12:31:55PM -0400, Chris Ball wrote: >> >> On Tue, Aug 23 2011, Venkatraman S wrote: >> >> > - struct mmc_request mrq = {0}; >> >> > + struct mmc_request mrq = {NULL}; >> >> >> >> The sparse warning is mistaken. Or I'm mistaken. But I suspect it's >> >> the sparse warning. >> > >> > Notice that it says "the remainder of the aggregate". The first field >> > still gets initialized with the 0 you supplied, and the first field of >> > struct mmc_request has a pointer type. >> >> That's an understandable position, but I think it would also be >> reasonable for sparse to special case using {0} as an >> initializer. {0} is a valid initializer for every type and so >> it's sometimes used as an initializer for a local variable to get >> the same effect that one would have for a static variable without >> specifying an initializer. > > {} produces the same effect, as far as I know. {} is not a valid initializer for every type in the same way as {0}, e.g.: blp@hardrock:~/db$ cat > tmp.c int x = {}; int y = {0}; blp@hardrock:~/db$ gcc tmp.c tmp.c:1:1: error: empty scalar initializer tmp.c:1:1: error: (near initialization for 'x') -- Ben Pfaff http://benpfaff.org -- 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