aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2018-11-09 02:46:03 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2018-11-09 02:46:03 +0000
commit3f3284629ba481294562f8370bf45e205e1d1eec (patch)
tree4d11a4fdaec7d19157cb0b95829bc770aa7b9aa9 /gcc
parent648cdca78ddaf6e5bafc8f735c3336eb5f1e5999 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/read_legacy_comma.f9031
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