http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48814

--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> 2011-05-02 16:24:01 UTC ---
On Mon, 2 May 2011, rguenth at gcc dot gnu.org wrote:

> The side-effects yes, but the read in count++ happens at either before
> or after incr is executed.  At least that is my reading of undefined
> evaluation order.  Does the sequence point before entering a function
> make that evaluation order suddenly defined?

The sequence point wording in C99 and C++03 is inherently confusing and 
doesn't go into much detail about what may or may not interleave, but what 
C1x and C++0x make explicit is that the evaluation of ++, -- and compound 
assignment do not interleave with an indeterminately-sequenced function 
call (and so they may not act by calling the indeterminately sequenced 
function between the read and the write of the operand being updated).  
You can argue about what exactly C99 and C++03 require (and so about 
whether there is a regression), but there is quite clearly now a bug to be 
fixed (and the fix should not depend on the language version).

Reply via email to