https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100810
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- GCC does warn about an unitialized variable i even in "i && d" For: if (!b) i &&d; b is even set to 1. Note setting b to be 0 still get the wrong code.