http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59933
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Mark Warner from comment #11) > I'm confused .. what about.. > for (k = i; k < (int)(sizeof(NSQ_del_dec_struct) / sizeof(opus_int32)); ++k) > ... is illegal or invalid ? > Why does it only fail if -DDEBUG is defined ? > I mean, this code worked fine for months .. and now The undefined behavior is if i is smaller than 292, you access out of bound array members (well, in C already the address arithmetics is undefined behavior when you go further than one past the last element of the array). The sLPC_Q14 has only 112 entries, so say if i is 0, then when k is 112, you invoke undefined behavior, because you can't read or write sLPC_Q14[112].