[Bug c/33248] The execution gives wrong results when compiled with mingw32-gcc 3.4.2

2007-08-30 Thread schwab at suse dot de
--- 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 **

[Bug c/33248] The execution gives wrong results when compiled with mingw32-gcc 3.4.2

2007-08-30 Thread alduc1 at free dot fr
--- 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

[Bug c/33248] The execution gives wrong results when compiled with mingw32-gcc 3.4.2

2007-08-30 Thread rguenth at gcc dot gnu dot org
--- 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: