Re: [PATCH 6/9] drivers/net/wireless/iwlwifi/iwl-4965.c: Correct use of ! and &

Ingo Molnar
2008-03-05T08:19:44Z

* Harvey Harrison <harvey.harrison@gmail.com> wrote:

> > Al's patch is:
> >
> > + if (op == '&' && expr->left->type == EXPR_PREOP &&
> > + expr->left->op == '!')
> > + warning(expr->pos, "dubious: !x & y");
> >
> > i think there might be similar patterns: "x & !y", "!x | y", "x | !y" ?
> >
>
> Well, (!x & y) and (!x | y) are probably the two that might have been
> intended otherwise. (x & !y), (x | !y) are probably ok.

i think the proper intention in the latter cases is (x & ~y) and
(x | ~y).

My strong bet is that in 99% of the cases they are real bugs and && or
|| was intended.

Ingo