https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117208
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|WAITING |RESOLVED --- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #4) > h should be zero-initialized. Can't reproduce either. h might be zero-initialized but it might be assigned via: k((l(3 && c), s), 0, 0, h = t, 0); Plus the order if h is assigned first vs `(l(3 && c), s)` being evulated first is also unspecified in C since the order of the arguments of a function call evulation is unspecified. That is on you can even get different answers even if t is initlaized to 1 but it depends on the target. e.g. on aarch64, you will always get `1 -1` no matter what since the assignment to h is evulated after the call to l.