OSDN Git Service

2011-08-18 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Aug 2011 14:23:41 +0000 (14:23 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Aug 2011 14:23:41 +0000 (14:23 +0000)
        PR fortran/50109
        * io/list_read.c (eat_separator): Fix skipping over "!" lines.

2011-08-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50109
        * gfortran.dg/namelist_73.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177858 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/namelist_73.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/list_read.c

index 0b09a0c..fa05947 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-18  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50109
+       * gfortran.dg/namelist_73.f90: New.
+
 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
 
        * g++.dg/plugin/decl_plugin.c: Include diagnostic.h.
diff --git a/gcc/testsuite/gfortran.dg/namelist_73.f90 b/gcc/testsuite/gfortran.dg/namelist_73.f90
new file mode 100644 (file)
index 0000000..8fc88aa
--- /dev/null
@@ -0,0 +1,28 @@
+! { dg-do run }
+!
+! PR fortran/50109
+!
+! Contributed by Jim Hanson
+!
+      program namelist_test
+
+      integer nfp
+      namelist /indata/ nfp
+
+      nfp = 99
+      open(unit=4, status='scratch')
+      write(4,'(a)') '$indata'
+      write(4,'(a)') 'NFP = 5,'
+      write(4,'(a)') "!  "
+      write(4,'(a)') "! "
+      write(4,'(a)') "!  "
+      write(4,'(a)') '/'
+
+      rewind(4)
+      read (4,nml=indata)
+      close(4)
+
+!      write(*,*) nfp
+      if (nfp /= 5) call abort()
+
+      end
index a30f264..f846b08 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-18  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50109
+       * io/list_read.c (eat_separator): Fix skipping over "!" lines.
+
 2011-07-23  Andreas Schwab  <schwab@linux-m68k.org>
 
        * intrinsics/ctime.c: Include <stdlib.h>.
index 01272d0..11a35c9 100644 (file)
@@ -351,16 +351,7 @@ eat_separator (st_parameter_dt *dtp)
                  err = eat_line (dtp);
                  if (err)
                    return err;
-                 if ((c = next_char (dtp)) == EOF)
-                   return LIBERROR_END;
-                 if (c == '!')
-                   {
-                     err = eat_line (dtp);
-                     if (err)
-                       return err;
-                     if ((c = next_char (dtp)) == EOF)
-                       return LIBERROR_END;
-                   }
+                 c = '\n';
                }
            }
          while (c == '\n' || c == '\r' || c == ' ' || c == '\t');