https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106862
--- Comment #3 from David Binderman <dcb314 at hotmail dot com> --- Another test case, this time in C is: enum { GELB, VIOLETT } KABEL; typedef playground_t[][4][2]; int ToPlayground_0_0_0, PlayGame_countdown, PlayGame_count_tick_len, PlayGame_move_tick_len, ProcessCapsules_row; playground_t CapsuleCountdown; void PlayGame() { int FinishTakeover = 0, prev_move_tick; while (!FinishTakeover) { if (KeyIsPressedR() && ModIsPressed() && ModIsPressed()) return; if (PlayGame_count_tick_len) { if (PlayGame_countdown) EndCountdownSound(); FinishTakeover = 1; } if (prev_move_tick + PlayGame_move_tick_len) prev_move_tick += ProcessCapsules(); } } void ProcessCapsules() { int color = GELB; for (; color <= VIOLETT; color++) { ProcessCapsules_row = 0; for (; ProcessCapsules_row < 12; ProcessCapsules_row++) { if (CapsuleCountdown[color][0][ProcessCapsules_row]) CapsuleCountdown[color][0][ProcessCapsules_row]--; if (CapsuleCountdown[color][0][ProcessCapsules_row]) ToPlayground_0_0_0 = KABEL; } } } $ /home/dcb/gcc/results/bin/gcc -c -fcommon -O3 -Wall bug842B.c