> While we're at it, below is somewhat ugly sparse patch for detecting
Excellent idea, and there is something to be said about a low-footprint patch
like that. However, if you really want to capture this kind of bugs, you would
need to have some kind "not a boolean" or "bitfield" attribute that
can propagate.
For example, you would want
if (foo && (BAR | BAZ)) ...;
with BAR and BAZ being hex constants to produce the same warning.
Incidentally, it is probably not just hex constants that deserve this treatment:
octal constants and variations of (1 << cst) are of the same nature. As well
as enums defined in such manners.
Morten
-