------- Comment #1 from burnus at gcc dot gnu dot org 2008-03-28 22:05 ------- Confirm.
Valgrind shows: Process terminating with default action of signal 8 (SIGFPE): dumping core Integer divide by zero at address 0x40274EADB at 0x4008C6: MAIN__ (ghfhgk.f90:15) > Divide incorrectly extracted from WHERE block? Yes and no. The compiler essentially transforms (as -fdump-tree-original shows) WHERE (RDA < -15.0) IDA = 1/NF0 + 2 ENDWHERE into TMP = 1/NF0 + 2 WHERE (RDA < -15.0) IDA = TMP ENDWHERE which is the reason for the integer divide by zero and shows that moving constant expressions out of a loop is not always a good idea. -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |wrong-code Last reconfirmed|0000-00-00 00:00:00 |2008-03-28 22:05:10 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35745