https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118653
--- Comment #2 from David Binderman <dcb314 at hotmail dot com> --- Reduced code seems to be: short g_72, g_173; int g_100[]; int func_1___trans_tmp_9; short(safe_sub_func_int16_t_s_s)(short si1, short si2) { return si1 - si2; } void func_1() { for (; g_173; g_173 = safe_sub_func_int16_t_s_s(g_173, 1)) { g_72 = 1; for (; g_72 <= 4; g_72 += 1) g_100[g_72] &= func_1___trans_tmp_9; } } void main() {}