http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54767
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |janus at gcc dot gnu.org --- Comment #4 from janus at gcc dot gnu.org 2012-10-01 18:22:40 UTC --- Here is a reduced test case, which shows the same behavior: SUBROUTINE XXX (IL, IU) implicit none integer, INTENT(IN) :: IL, IU integer :: NXX (3) = (/ 0, 1, 2 /) integer :: ivvv, ia, iyyye, ja, iaii logical :: qop, qvv IYYYE=-1 QOP=.FALSE. DO IA=IL,IU JA=NXX(IA) QVV=JA.GT.0 IF (.NOT. QOP .and. QVV) THEN IAII=IA ivvv=1 QOP=.TRUE. ENDIF IF (QOP) THEN IF (QVV) THEN ivvv=IA-IAII+1 ! mis-compiled write(*,*) ia,ivvv ELSE IF (IA+IYYYE<1) THEN QOP=.FALSE. IYYYE=0 ENDIF ENDIF ENDDO write(*,*) ivvv==2 END subroutine program p implicit none CALL XXX (1, 3) end