https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118140
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Try this:
d |= ({
int h = f[g - 1] ? 2 : 0;
#if 0
int i = f[g - 1] ? f_3 : 0;
#else
_Bool t;
if (f[g - 1])
t = f_3;
else
t = 0;
//_Bool t = (f[g - 1] & f_3);
int i = t;
#endif
h > i;
});
