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

Reply via email to