https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111043
--- Comment #7 from David Binderman <dcb314 at hotmail dot com> ---
A third reproducer, with -O3 required:
long g_18;
int g_170, g_759, g_1114;
extern void safe_lshift_func_uint64_t_u_u();
void func_35() {
int __trans_tmp_1;
for (; g_759 >= 0; g_759 = g_759 - (long)7) {
g_170 = 0;
if (__trans_tmp_1)
return;
if (g_1114)
safe_lshift_func_uint64_t_u_u();
}
}
void func_20() {
int __trans_tmp_2;
g_18 = 7;
for (; g_18 >= 0; g_18 -= 1)
__attribute__(()) int right = g_18;
__trans_tmp_2 = right < 0 || right >= 2 ?: right;
if (__trans_tmp_2)
for (;;)
;
func_35();
}