https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103063
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Unless I'm missing something, the outer loop iterates with a = -6, b is 0, so (unsigned char) (b-- * 6) is 0 (so the inner loop doesn't iterate further) and b is decremented to 255. Next a = a - 8 makes a = -14 out of that, so the outer loop doesn't iterate any longer, so abort is what the test should do (unless changed to b != 255).