https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106032
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[12/13 Regression] wrong |[10/11/12/13 Regression] |code at -Os and above on |wrong code at -Os and above |x86_64-linux-gnu |on x86_64-linux-gnu Known to work|11.3.0 |6.1.0, 6.4.0 Target Milestone|13.0 |10.4 Known to fail| |7.1.0, 8.1.0, 9.1.0 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a testcase which shows this was latent but fails in GCC 7+ (so it is still a regression): int a, b, c, *d; int main() { int e = 0, f = 0; int *dd = d; for (; f < 1; f++) if (c < 0) e = *dd; if (a) { a = b ? 0 : a; e && (b = a); } return 0; }