diff options
author | Richard Biener <rguenther@suse.de> | 2013-01-16 13:57:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-01-16 13:57:48 +0000 |
commit | c25a0c60a5893ae7f4ba309b5b3bb2f336873683 (patch) | |
tree | bf26002dab1b0a5d65c7eb332ee9ec6f9b197e26 /gcc/testsuite/gfortran.fortran-torture | |
parent | 04b535af39f1c081d95961e4a7b0a0818182a7a6 (diff) | |
download | gcc-c25a0c60a5893ae7f4ba309b5b3bb2f336873683.zip gcc-c25a0c60a5893ae7f4ba309b5b3bb2f336873683.tar.gz gcc-c25a0c60a5893ae7f4ba309b5b3bb2f336873683.tar.bz2 |
re PR tree-optimization/54767 (Incorrect code generated with "-O2 -fcheck=bounds")
2013-01-16 Richard Biener <rguenther@suse.de>
PR tree-optimization/54767
PR tree-optimization/53465
* tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
(vrp_visit_phi_node): For PHI arguments coming via backedges
drop all symbolical range information.
(execute_vrp): Compute backedges.
* gfortran.fortran-torture/execute/pr54767.f90: New testcase.
From-SVN: r195238
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture')
-rw-r--r-- | gcc/testsuite/gfortran.fortran-torture/execute/pr54767.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.fortran-torture/execute/pr54767.f90 b/gcc/testsuite/gfortran.fortran-torture/execute/pr54767.f90 new file mode 100644 index 0000000..f95bff1 --- /dev/null +++ b/gcc/testsuite/gfortran.fortran-torture/execute/pr54767.f90 @@ -0,0 +1,31 @@ +SUBROUTINE XXX (IL, IU) + implicit none + integer, INTENT(IN) :: IL, IU + + integer :: NXX (14) = (/ 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14 /) + integer :: ivvv, ia, ja, iaii + logical :: qop + + QOP=.FALSE. + + DO IA=IL,IU + JA=NXX(IA) + IF (.NOT. QOP .and. JA.GT.0) THEN + IAII=IA + QOP=.TRUE. + ENDIF + + IF (QOP) THEN + ivvv=IA-IAII+1 ! mis-compiled + ENDIF + ENDDO + + IF (ivvv.NE.2) THEN + call abort + ENDIF +END subroutine + +program p + implicit none + CALL XXX (1, 3) +end |