http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51058
Bug #: 51058 Summary: [4.7 Regression] ICE: gimple check: expected gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: domi...@lps.ens.fr CC: i...@gcc.gnu.org, ja...@gcc.gnu.org, rguent...@suse.de On x86_64-apple-darwin10 at revision 181200, compiling the polyhedron test mdbx.f90 with '-O2 -ftree-vectorize' gives an ICE: [macbook] lin/test% gfc -c mdbx.f90 -O2 -ftree-vectorize mdbx.f90: In function 'mlist': mdbx.f90:1199:0: internal compiler error: gimple check: expected gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992 Revision 181085 is OK. The following reduced test reproduces the ICE: SUBROUTINE MLIST(MOLsp,PBCx,PBCy,PBCz, X0) IMPLICIT NONE INTEGER, PARAMETER :: NM=16384 INTEGER :: MOLsp, i DOUBLE PRECISION :: PBCx, PBCy, PBCz, boxjmp, HALf=1./2. DOUBLE PRECISION :: X0(3,-2:NM) DO i = 1 , MOLsp boxjmp = PBCx*INT(X0(1,i)+SIGN(HALf,X0(1,i))) X0(1,i) = X0(1,i) - boxjmp boxjmp = PBCy*INT(X0(2,i)+SIGN(HALf,X0(2,i))) X0(2,i) = X0(2,i) - boxjmp boxjmp = PBCz*INT(X0(3,i)+SIGN(HALf,X0(3,i))) X0(3,i) = X0(3,i) - boxjmp ENDDO END