On Wed, Oct 10, 2007 at 04:45:46AM -0700, Josh Triplett wrote: > Alexey Dobriyan wrote: > > ["if (!x & y)" patch from yanzheng@] > > ["if (!x & y)" patch from adobriyan@] > > ["if (!x & y)" patches from viro@] > > > > While we're at it, below is somewhat ugly sparse patch for detecting > > "&& 0x" typos. > > Excellent idea! I think it applies to || as well. Sadly, yes. [PATCH] smctr: fix "|| 0x" typo IBM_PASS_SOURCE_ADDR is 1, so logically ORing it with status bits is pretty useless. Do bitwise OR, instead. Signed-off-by: Alexey Dobriyan <adobriyan@xxxxx> --- drivers/net/tokenring/smctr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/net/tokenring/smctr.c +++ b/drivers/net/tokenring/smctr.c @@ -3413,7 +3413,7 @@ static int smctr_make_tx_status_code(struct net_device *dev, tsv->svi = TRANSMIT_STATUS_CODE; tsv->svl = S_TRANSMIT_STATUS_CODE; - tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) || IBM_PASS_SOURCE_ADDR); + tsv->svv[0] = ((tx_fstatus & 0x0100 >> 6) | IBM_PASS_SOURCE_ADDR); /* Stripped frame status of Transmitted Frame */ tsv->svv[1] = tx_fstatus & 0xff; > I'll most likely > add a -Wboolean-logic-on-bit-constant to turn this warning on. Ewww, more options. :-( > Any reason why this wouldn't apply to octal constants or to GCC's new > binary constants? I can trivially modify this patch to handle those > as well, just by dropping the check for an 'x' or 'X', and renaming the > flag. OK, let me try too. - 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