This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/54767] [4.7/4.8 Regression] Incorrect code generated with "-O2 -fcheck=bounds"


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]