https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71148
--- Comment #1 from Arseny Solokha <asolokha at gmx dot com> --- The same issue w/ the following testcase and -O2 -ftracer: char yt; int uz, rp, b6; void tw (void) { int *ip = &b6; p9: if (b6 / rp != 0) { for (yt = 0; yt < 2; ++yt) { if (*ip > b6) --rp; ip = &uz; yt *= (rp & (rp ? b6 : uz)); if ((1 / b6) != 0) if (--yt != 0) goto p9; } goto p9; for (yt = 0; yt < 1; ++yt) { gk: return; fj: ; } } if (b6 * b6 != 0) { uz |= rp; goto gk; } goto fj; }