https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117425
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is unspecified on the order of evaluating e() vs ((*c = 0, 0) || 0). Even though there is a sequence point between *c = 0 and 0 (and || 0) there is no sequence point for the original `|` so e() could be executed first or `*c = 0;`