http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60103
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I think C11 and C90/C99 have a different idea here. There is a relative sequence point between the function call fn2 and the 0 but there is no sequence point between the two assignments I think. Sequence points are not my area of expertise so I could be wrong but I do know that C11/C++11 does get rid of the idea of sequence points and change the name of it to something else.