https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104948
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> (In reply to dagelf from comment #3)
> > Can you please give me an example of code with the generated machine code
> > where it actually works as a logical AND?
> >
> > Because I've tried several versions, and under no circumstances did it
> > function as a binary operator.
> >
> > The warning might be improved to state that `&&` is not logical AND.
>
> int f(int *a, int *b)
> {
> if (*a && *b)
> return 1;
> return 0;
> }
Note in C, && is short cutting that means *a != 0 has to be true before
evaluating *b != 0.