From: Jerry DeLisle Date: Tue, 11 Dec 2007 03:56:05 +0000 (+0000) Subject: re PR fortran/34411 (hang-up during read of non-expected input) X-Git-Tag: releases/gcc-4.3.0~1105 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=424cc6dcf439a3dd48cbc74335b47421ebf2d8fb;p=thirdparty%2Fgcc.git re PR fortran/34411 (hang-up during read of non-expected input) 2007-12-10 Jerry DeLisle PR fortran/34411 * gfortran.dg/error_recovery_5.f90: New. * gfortran.dg/optional_dim_2.f90: Fix test, not related to this PR. From-SVN: r130768 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4774d300efc6..9311821c777d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-12-10 Jerry DeLisle + + PR fortran/34411 + * gfortran.dg/error_recovery_5.f90: New. + * gfortran.dg/optional_dim_2.f90: Fix test, not related to this PR. + 2007-12-10 Jakub Jelinek PR tree-optimization/34371 diff --git a/gcc/testsuite/gfortran.dg/error_recovery_5.f90 b/gcc/testsuite/gfortran.dg/error_recovery_5.f90 new file mode 100644 index 000000000000..88acf93ccf7a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/error_recovery_5.f90 @@ -0,0 +1,30 @@ +! { dg-do run } +! PR34411 hang-up during read of non-expected input +! Test case derived from that given in PR +! Prior to patch, the do loop was infinite, limits set in this one +program pr34411 + real :: x,y + ii = 0 + iostat = 0 + x = 0.0; y= 0.0 + open (10, status="scratch") + write (10, '(a)')" 289 329.142 214.107 12.313 12.050 11.913 11.868" + write (10, '(a)')" 2038.497 99.99 0.00 0.019 0.021 0.025 0.034" + write (10, '(a)')"" + write (10, '(a)')" 413 360.334 245.261 12.375 11.910 11.469 11.086" + write (10, '(a)')" 2596.395 99.99 0.00 0.019 0.017 0.016 0.015" + write (10, '(a)')"" + write (10, '(a)')" 655 332.704 317.964 12.523 12.212 11.998 11.892" + write (10, '(a)')" 1627.586 99.99 0.00 0.005 0.005 0.006 0.007" + write (10, '(a)')"" + write (10, '(a)')" 360 379.769 231.226 12.709 12.422 12.195 11.941" + write (10, '(a)')" 2561.539 99.99 0.00 0.042 0.043 0.050 0.055" + rewind 10 + do i = 1,100 + read(10,'(T7,2F9.3)', iostat=ii, end=666) x,y + end do +666 continue + if (i /= 12) call abort + if (x /= 379.76901 .and. y /= 231.22600) call abort + close(10) +end program pr34411 diff --git a/gcc/testsuite/gfortran.dg/optional_dim_2.f90 b/gcc/testsuite/gfortran.dg/optional_dim_2.f90 index bb2520136131..41cbbf542aca 100644 --- a/gcc/testsuite/gfortran.dg/optional_dim_2.f90 +++ b/gcc/testsuite/gfortran.dg/optional_dim_2.f90 @@ -19,6 +19,6 @@ contains lotto = eoshift((/.true.,.true.,.true.,.true./),1,boundary=bound,dim=dimmy) lotto = eoshift(lotto,1,dim=dimmy) write(testbuf,*) lotto - if (trim(testbuf).ne." T T F F") print *, testbuf + if (trim(testbuf).ne." T T F F") call abort end subroutine end program test \ No newline at end of file