diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2018-11-09 02:46:03 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2018-11-09 02:46:03 +0000 |
commit | 3f3284629ba481294562f8370bf45e205e1d1eec (patch) | |
tree | 4d11a4fdaec7d19157cb0b95829bc770aa7b9aa9 /gcc | |
parent | 648cdca78ddaf6e5bafc8f735c3336eb5f1e5999 (diff) | |
download | gcc-3f3284629ba481294562f8370bf45e205e1d1eec.zip gcc-3f3284629ba481294562f8370bf45e205e1d1eec.tar.gz gcc-3f3284629ba481294562f8370bf45e205e1d1eec.tar.bz2 |
re PR fortran/78351 (comma not terminating READ of formatted input field - ok in 4.1.7, not 4.4.7- maybe related to 25419?)
2018-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/78351
* io/transfer.c (read_sf_internal): Add support for early
comma termination of internal unit formatted reads.
* gfortran.dg/read_legacy_comma.f90: New test.
From-SVN: r265946
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/read_legacy_comma.f90 | 31 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4769e45..b300e5f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libfortran/78351 + * gfortran.dg/read_legacy_comma.f90: New test. + 2018-11-08 Peter Bergner <bergner@linux.ibm.com> PR rtl-optimization/87600 diff --git a/gcc/testsuite/gfortran.dg/read_legacy_comma.f90 b/gcc/testsuite/gfortran.dg/read_legacy_comma.f90 new file mode 100644 index 0000000..7c3e185 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/read_legacy_comma.f90 @@ -0,0 +1,31 @@ +! { dg-do run } +! { dg-options "-std=legacy" } +! PR78351 +program read_csv + implicit none + integer, parameter :: dbl = selected_real_kind(p=14, r=99) + + call checkit("101,1.,2.,3.,7,7") + call checkit ("102,1.,,3.,,7") + call checkit (",1.,,3.,, ") + +contains + +subroutine checkit (text) + character(*) :: text + integer :: I1, I2, I3 + real(dbl) :: R1, R2, R3 + 10 format (I8,3ES16.8,2I8) + + I1=-99; I2=-99; I3=-99 + R1=-99._DBL; R2=-99._DBL; R3=-99._DBL + read(text,10) I1, R1, R2, R3, I2, I3 + if (I1 == -99) stop 1 + if (I2 == -99) stop 2 + if (I3 == -99) stop 3 + if (R1 == -99._DBL) stop 4 + if (R2 == -99._DBL) stop 5 + if (R3 == -99._DBL) stop 6 +end subroutine + +end program |