https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101466
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- With some hand-waving we could generate void square(unsigned t, int *tt) { if (t<=4) __builtin_abort(); tt[0] = 0; tt[1] = 0; tt[2] = 0; tt[3] = 0; tt[4] = 0; } but I don't see how it fits any existing transform? The "hand-waving" would be that __builtin_abort () since it's a known function cannot observe the dropped side-effects like tt[0] = 0 when t > 0.