--- Comment #3 from schwab at suse dot de 2007-08-30 16:10 ---
It invokes undefined behaviour, if it breaks you get to keep the pieces. There
is no requirement that you get any useful result.
http://c-faq.com/expr/evalorder1.html
*** This bug has been marked as a duplicate of 11751 **
--- Comment #2 from alduc1 at free dot fr 2007-08-30 15:22 ---
I do not think it is the same bug 11751.
For example:
*p++ = *p + 1.0;
*p++ = *p + 1.0;
works. But
*p++ = (float) floor((double) *p + 0.5);
*p++ = (float) floor((double) *p + 0.5);
does not work (with float). It
--- Comment #1 from rguenth at gcc dot gnu dot org 2007-08-30 12:33 ---
There is no sequence point between *p++ and *p. So you hit #2 of the most
frequently reported (non-)bugs.
*** This bug has been marked as a duplicate of 11751 ***
--
rguenth at gcc dot gnu dot org changed: