From c789f36b216c9318b7f5fadb3a632f91513e3156 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 31 Aug 2004 14:56:09 +0000 Subject: [PATCH] list_read.c (eat_separator): Set at_eo when a '/' is seen. * list_read.c (eat_separator): Set at_eo when a '/' is seen. testsuite/ * gfortran.dg/list_read_1.f90: New file. From-SVN: r86830 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/list_read_1.f90 | 22 ++++++++++++++++++++++ libgfortran/ChangeLog | 4 ++++ libgfortran/io/list_read.c | 1 + 4 files changed, 31 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/list_read_1.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8e6d1be2a8e..0bca0f17229 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-08-31 Paul Brook + + * gfortran.dg/list_read_1.f90: New file. + 2004-08-30 Mark Mitchell * g++.dg/opt/loop1.C: XFAIL. diff --git a/gcc/testsuite/gfortran.dg/list_read_1.f90 b/gcc/testsuite/gfortran.dg/list_read_1.f90 new file mode 100644 index 00000000000..6fba90ae738 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/list_read_1.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +! Program to test terminators in list-directed input +program list_read_1 + character(len=5) :: s + + open (unit=11, status="SCRATCH") + ! The / terminator was causing the next value to be skipped. + write (11, '(a)') " 42 /" + write (11, '(a)') " 43" + write (11, '(a)') " 44" + + rewind(11) + + read (11, *) i + if (i .ne. 42) call abort + read (11, *) i + if (i .ne. 43) call abort + read (11, *) i + if (i .ne. 44) call abort + close (11) +end + diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index ecc104e5ffc..28329d2608c 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,7 @@ +2004-08-31 Paul Brook + + * list_read.c (eat_separator): Set at_eo when a '/' is seen. + 2004-08-31 Tobias Schlueter * libgfortran.h: Replace 'gfc_strlen_type' by diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 95b5b883491..8b00a5e296e 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -210,6 +210,7 @@ eat_separator (void) case '/': input_complete = 1; next_record (0); + at_eol = 1; break; case '\n': -- 2.30.2