https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99779
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- In C, it is unspecified which side of the equal gets evaluated first. So in this case (*fp = foo();): this could be done as int *fpp = fp; *fpp = foo(); OR: int t = foo(); *fp = t; BOTH are valid for C. C++11 and above have different rules with respect to sequence points.