[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 Richard Biener changed: What|Removed |Added Status|NEW |RESOLVED Resolution|

[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 Richard Biener changed: What|Removed |Added Keywords||wrong-code CC|

[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 --- Comment #5 from Marc Glisse 2013-03-01 10:05:53 UTC --- You are right, of course. I remembered that gcc defined unsigned->signed conversion, but I had forgotten that it defined all narrowing conversions as well, sorry.

[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 --- Comment #4 from Jakub Jelinek 2013-03-01 09:59:39 UTC --- But e = e + 5 is avaluated as e = (short) ((int) e + 5) and thus I think it just falls down to implementation defined behavior (assuming short is smaller than int of course), b

[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 --- Comment #3 from Marc Glisse 2013-03-01 09:53:20 UTC --- Seems to me that 'e' is signed and the testcase relies on wrapping overflow (-fwrapv helps).

[Bug tree-optimization/56488] [4.7 Regression] wrong code for loop at -O3

2013-03-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56488 Jakub Jelinek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|