https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116819
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note this code is undefined: prephitmp_52 = _44 ? _17 : _16(D); This is due to lifetime of the temp being bound for the call to second call of c ends after the variable initialization and NOT extended afterwards. I am not sure if the original one was though.