[Adding Linus and Chris Li to CC; Linus for further background on -Wdo-while, and Chris Li for Sparse.] On Wed, Jul 08, 2009 at 09:28:24PM +0200, Vegard Nossum wrote: > 2009/7/6 Johannes Berg <johannes@xxxxxxxxxxxxxxxx>: > > Whether or not the sparse warning > > > > warning: do-while statement is not a compound statement > > > > is justified or not in this case, it is annoying and > > trivial to fix. [...] > > I'll change the patch title to "kmemcheck: work around bogus sparse > warning" and fix the indentation, sounds ok? > > Meanwhile, I Cced sparse mailing list in case somebody else knows > anything else about this warning (what it means, whether it's > justified in this case, whether it should be fixed in sparse, etc.). -Wdo-while gives a warning if you write: do statement while (...); where "statement" does not consist of a compound statement surrounded by braces. As far as I know, this warning exists primarily because it matched Linus's preference for readability. However, note that Sparse does not have -Wdo-while enabled by default. Sparse only issues that warning if you use -Wdo-while explicitly, or if you pass -Wall. (The latter often happens due to passing the same warning flags to GCC and Sparse, without using cgcc which filters out -Wall for Sparse for that reason.) Much discussion has occurred previously suggesting that Sparse's -Wall should match GCC's "all useful warnings" rather than "all possible warnings", and some other option should exist for "all possible warnings" (for instance, -Weverything). This seems very reasonable. Given that Sparse *exists* to give warnings, -Wall's "all useful warnings" approach seems like it matches Sparse's default behavior; thus, I think it would make the most sense to make Sparse just interpret -Wall as "enable all the warnings enabled by default" (which would normally act as a no-op, but would make a difference if you passed "-Wno-foo -Wall" for some default warning foo). This would improve Sparse's behavior for the case where you invoke sparse $(CFLAGS) directly rather than setting CC=cgcc, if CFLAGS contains -Wall. - Josh Triplett -- 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