https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114566

--- Comment #4 from Yuxuan Shui <yshuiv7 at gmail dot com> ---
Reduced a bit further:

void setup_tone_curves(float binHz, float center_decay_rate) {
  float workc[8][56];
  memset(workc, 0, sizeof(workc));

  for (int j = 0; j < 8; j++) {
    for (int k = 0; k < 56; k++) {
      float adj =  k * center_decay_rate;
      if (adj < 0.)
        adj = 0.;
      if (adj > 0.)
        adj = 0.;
      workc[j][k] += adj;
    }
  }

  int lo_curve = log(binHz);
}

Some observations:

1. lo_curve, although dead code, triggers the bug.
2. the 2 if's in the loop are also required for this bug.
3. workc has to be initialized with memset, aggregate initializer doesn't
trigger the bug.

Reply via email to