summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-12 19:52:13 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2016-02-12 19:52:13 +0000
commit1774ff82e1eeca3fb9e59f4e02030d0e15a32b2b (patch)
tree3ee4e8839e5f82fbae321cdbee84dd7d75e26a7e
parentaec1f4bd411b96bd2fb72bf2282be1ebb9687352 (diff)
downloadgcc-1774ff82e1eeca3fb9e59f4e02030d0e15a32b2b.tar.gz
2016-02-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/69668 * io/list_read.c (read_character): Remove code related to DELIM_NONE. PR libgfortran/69668 * gfortran.dg/namelist_38.f90: Update test. * gfortran.dg/namelist_84.f90: Update test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233387 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/namelist_38.f9014
-rw-r--r--gcc/testsuite/gfortran.dg/namelist_84.f905
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/io/list_read.c15
5 files changed, 22 insertions, 23 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6d01ca3b7a1..7bed3caf259 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/69668
+ * gfortran.dg/namelist_38.f90: Update test.
+ * gfortran.dg/namelist_84.f90: Update test.
+
2016-02-12 David Malcolm <dmalcolm@redhat.com>
PR other/69554
diff --git a/gcc/testsuite/gfortran.dg/namelist_38.f90 b/gcc/testsuite/gfortran.dg/namelist_38.f90
index 5578654eea4..b51463cfa8a 100644
--- a/gcc/testsuite/gfortran.dg/namelist_38.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_38.f90
@@ -5,6 +5,7 @@
program main
implicit none
character(len=3) :: a
+ character(25) :: b
namelist /foo/ a
open(10, status="scratch", delim="quote")
@@ -28,9 +29,12 @@ program main
open(10, status="scratch", delim="none")
a = "a'a"
write(10,foo)
- rewind 10
- a = ""
- read (10,foo)
- if (a.ne."a'a") call abort
- close (10)
+ rewind (10)
+ read(10,"(a)") b
+ if (b .ne. "&FOO") call abort
+ read(10,"(a)") b
+ if (b .ne. " A=a'a") call abort
+ read(10,"(a)") b
+ if (b .ne. " /") call abort
+ close(10)
end program main
diff --git a/gcc/testsuite/gfortran.dg/namelist_84.f90 b/gcc/testsuite/gfortran.dg/namelist_84.f90
index af139d91edc..14b68a44e8a 100644
--- a/gcc/testsuite/gfortran.dg/namelist_84.f90
+++ b/gcc/testsuite/gfortran.dg/namelist_84.f90
@@ -17,12 +17,11 @@ program namelist_delim_none
write(10, mylist)
rewind(10)
mystring = "xxxxx"
- read(10,mylist)
- if (any(mystring /= (/ 'mon', 'tue', 'wed', 'thu', 'fri' /))) call abort
rewind(10)
do i=1,5
read(10,'(a)') internal_unit
- if (scan(internal_unit,"""'").ne.0) call abort
+ if (i.eq.2 .and. internal_unit .ne. " MYSTRING=mon tue wed thu fri ,") call abort
+ if (scan(internal_unit,"""'").ne.0) print *, internal_unit
end do
close(10)
end program
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 4c7befa2128..7d0cb66ac58 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/69668
+ * io/list_read.c (read_character): Remove code related to DELIM_NONE.
+
2016-01-23 John David Anglin <danglin@gcc.gnu.org>
PR libfortran/68744
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index 052219be1a9..efbbcb6c5c3 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -1131,21 +1131,6 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
default:
if (dtp->u.p.namelist_mode)
{
- if (dtp->u.p.current_unit->delim_status == DELIM_NONE)
- {
- /* No delimiters so finish reading the string now. */
- int i;
- push_char (dtp, c);
- for (i = dtp->u.p.ionml->string_length; i > 1; i--)
- {
- if ((c = next_char (dtp)) == EOF)
- goto done_eof;
- push_char (dtp, c);
- }
- dtp->u.p.saved_type = BT_CHARACTER;
- free_line (dtp);
- return;
- }
unget_char (dtp, c);
return;
}