https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117594
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-11-15 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- So confirmed. I get 4294967260 on x86_64. 'c' is unused. Please use if (a != 4294967260) abort (); instead of printf, that also makes it obvious what the correct intended value is. unsigned a; short b, d, e; int main() { short h = d; short *z = &h; for (_Bool i = 0; i < 1; i = 1) for (unsigned j = 0; j < (z[i] ?: 10); j += 3) { a -= 9; b -= ~e; } if (a != 4294967260) __builtin_abort (); }