The following code ICEs at -O2 on amd64. It was reduced from galgel, which is broken at the moment because of this bug. SUBROUTINE FOO (N, A, LDA, X, INCX) INTEGER :: INCX, LDA, N REAL*8 :: A(LDA,*), X(*) REAL*8 :: TEMP INTEGER :: I, J, IX, JX, KX IF (INCX == 1) THEN CONTINUE ELSE JX = KX + (N - 1)*INCX DO 20, J = N, 1, -1 TEMP = X(JX) IX = JX DO 10, I = J - 1, 1, -1 IX = IX - INCX TEMP = TEMP + A(I,J)*X(IX) 10 CONTINUE X(JX) = TEMP JX = JX - INCX 20 CONTINUE END IF RETURN END
-- Summary: [4.1 regression] ICE in IVopts Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steven at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22315