https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98213
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Sure: long var_23, min___a; int var_24, test_var_8, test_arr_16; extern bool arr_20[][13]; char arr_21_0_0_0_0_0; const unsigned long long &min(unsigned long long &__b) { if (__b) return __b; return min___a; } const unsigned long long &max(const unsigned long long &__a, const unsigned long long &__b) { if (__b) return __b; return __a; } int *test_arr_0; unsigned long long test_var_1; void test() { for (;;) { for (int i_6 = 0; i_6 < 19; i_6 += 4) for (long i_7(test_var_8); i_7; i_7 += 2) { arr_20[0][i_7] = arr_21_0_0_0_0_0 = 0; var_23 = test_arr_0[0]; } const unsigned long long &__trans_tmp_1 = min(test_var_1); var_24 = max(test_arr_16, __trans_tmp_1); } }