https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104948
--- Comment #14 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to dagelf from comment #13)
> Although I would love to find counter examples, I would be willing to wager
> that && mixed with non bools, will almost always be done in error.
No, this is valid and not done in error:
void f(const char* str, size_t len)
{
if (str && len)
{ /* ... */ }
}
The condition is equivalent to (str != 0 && len != 0) but more succinct. If you
prefer the more verbose form, that's fine, but it doesn't mean everyone else's
code is erroneous.