https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116819
--- Comment #4 from ktkachov at gcc dot gnu.org --- (In reply to Andrew Pinski from comment #1) > 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. The original code was from the yarpgen that was supposed to generate well-defined code. Unfortunately I don't have that original case anymore