public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/35617]  New: read namelist error
@ 2008-03-17 17:33 pletzer at txcorp dot com
  2008-03-17 18:33 ` [Bug fortran/35617] " pletzer at txcorp dot com
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: pletzer at txcorp dot com @ 2008-03-17 17:33 UTC (permalink / raw)
  To: gcc-bugs

Hi: It seems that gfortran can get confused about namelists that include 2 ! on
the same line. The following code fails to execute properly with gfortran
4.3.0:

cat > t.nml <<EOF
&nbdrive_naml
!nstep_stop = 2  ! uncomment to save restart data and halt after 1st step
!nstep_start = 2 ! uncomment to restart on 2nd step using saved restart data
mhdpath = 'EFIT:efit_d3d_99411_195.dat'
EOF
cat > t.f90 <<EOF
program test
character(len=128) :: mhdpath
namelist /nbdrive_naml/ mhdpath
open(10, file='t.nml')
read(10, nbdrive_naml)
close(10)
write(*, nbdrive_naml)
end program test
EOF
gfortran t.f90
./a.out 
At line 5 of file t.f90 (unit = 10, file = 't.nml')
Fortran runtime error: End of file


-- 
           Summary: read namelist error
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pletzer at txcorp dot com
 GCC build triplet: GNU Fortran (GCC) 4.3.0
  GCC host triplet: Linux quartic.txcorp.com 2.6.19-1.2288.fc5
GCC target triplet: x86_64 x86_64 GNU/Linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
@ 2008-03-17 18:33 ` pletzer at txcorp dot com
  2008-03-17 23:21 ` [Bug fortran/35617] [4.3, 4.4 Regression] " burnus at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pletzer at txcorp dot com @ 2008-03-17 18:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pletzer at txcorp dot com  2008-03-17 18:32 -------
(In reply to comment #0)

Oops, the failing namelist was:

&nbdrive_naml

!nstep_stop = 2  ! uncomment to save restart data and halt after 1st step
!nstep_start = 2 ! uncomment to restart on 2nd step using saved restart data
mhdpath = 'EFIT:efit_d3d_99411_195.dat'
/

and the erro message is 

Fortran runtime error: Cannot match namelist object name !nstep_start

Note: the initial blank line is essential in order to reproduce the problem. 

Thanks for your help.

--Alex

> Hi: It seems that gfortran can get confused about namelists that include 2 ! on
> the same line. The following code fails to execute properly with gfortran
> 4.3.0:
> 
> cat > t.nml <<EOF
> &nbdrive_naml
> !nstep_stop = 2  ! uncomment to save restart data and halt after 1st step
> !nstep_start = 2 ! uncomment to restart on 2nd step using saved restart data
> mhdpath = 'EFIT:efit_d3d_99411_195.dat'
> EOF
> cat > t.f90 <<EOF
> program test
> character(len=128) :: mhdpath
> namelist /nbdrive_naml/ mhdpath
> open(10, file='t.nml')
> read(10, nbdrive_naml)
> close(10)
> write(*, nbdrive_naml)
> end program test
> EOF
> gfortran t.f90
> ./a.out 
> At line 5 of file t.f90 (unit = 10, file = 't.nml')
> Fortran runtime error: End of file
> 


-- 

pletzer at txcorp dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|read namelist error         |read namelist error


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3, 4.4 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
  2008-03-17 18:33 ` [Bug fortran/35617] " pletzer at txcorp dot com
@ 2008-03-17 23:21 ` burnus at gcc dot gnu dot org
  2008-03-18  2:30 ` jvdelisle at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-03-17 23:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from burnus at gcc dot gnu dot org  2008-03-17 23:20 -------
Confirmed. This is a regression. Personal candidate for this is PR 34530. I
think the following patch is correct. Jerry what do you think? (I currently
have no time to submit the patch.)

Index: libgfortran/io/list_read.c
===================================================================
--- libgfortran/io/list_read.c  (Revision 133293)
+++ libgfortran/io/list_read.c  (Arbeitskopie)
@@ -353,10 +353,7 @@ eat_separator (st_parameter_dt *dtp)
            {
              c = next_char (dtp);
              if (c == '!')
-               {
-                 eat_line (dtp);
-                 c = next_char (dtp);
-               }
+               eat_line (dtp);
            }
          while (c == '\n' || c == '\r' || c == ' ');
          unget_char (dtp, c);


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jvdelisle at gcc dot gnu dot
                   |                            |org, burnus at gcc dot gnu
                   |                            |dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
  GCC build triplet|GNU Fortran (GCC) 4.3.0     |
   GCC host triplet|Linux quartic.txcorp.com    |
                   |2.6.19-1.2288.fc5           |
 GCC target triplet|x86_64 x86_64 GNU/Linux     |
           Keywords|                            |wrong-code
      Known to fail|                            |4.3.0 4.4.0
      Known to work|                            |4.1.3 4.2.2
   Last reconfirmed|0000-00-00 00:00:00         |2008-03-17 23:20:56
               date|                            |
            Summary|read namelist error         |[4.3, 4.4 Regression] read
                   |                            |namelist error
   Target Milestone|---                         |4.3.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3, 4.4 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
  2008-03-17 18:33 ` [Bug fortran/35617] " pletzer at txcorp dot com
  2008-03-17 23:21 ` [Bug fortran/35617] [4.3, 4.4 Regression] " burnus at gcc dot gnu dot org
@ 2008-03-18  2:30 ` jvdelisle at gcc dot gnu dot org
  2008-03-18  4:26 ` jvdelisle at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-18  2:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jvdelisle at gcc dot gnu dot org  2008-03-18 02:29 -------
I will test and fix.


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-03-17 23:20:56         |2008-03-18 02:29:45
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3, 4.4 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (2 preceding siblings ...)
  2008-03-18  2:30 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-18  4:26 ` jvdelisle at gcc dot gnu dot org
  2008-03-18  4:29 ` jvdelisle at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-18  4:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-03-18 04:25 -------
Naturally, the patch in comment #2 breaks namelist_44.f90  (I say that because,
after all, we are up to 44 namelist test cases, and about to go to 45 :) )

Nevertheless, this fixes it and passes regression.

Index: list_read.c
===================================================================
--- list_read.c (revision 133275)
+++ list_read.c (working copy)
@@ -356,6 +356,11 @@ eat_separator (st_parameter_dt *dtp)
                {
                  eat_line (dtp);
                  c = next_char (dtp);
+                 if (c == '!')
+                   {
+                     eat_line (dtp);
+                     c = next_char (dtp);
+                   }
                }
            }
          while (c == '\n' || c == '\r' || c == ' ');

eatline leaves us pointing to the first character of the next line, which we
then get, which causes the while loop to exit, followed by an unget.  So the
next get char will get a '!' which is nonsense and can not be matched.  The
patch circumvents this special case.

I will commit as obvious to trunk and then to 4.3 in a few days.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3, 4.4 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (3 preceding siblings ...)
  2008-03-18  4:26 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-18  4:29 ` jvdelisle at gcc dot gnu dot org
  2008-03-18  4:32 ` jvdelisle at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-18  4:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-03-18 04:28 -------
Subject: Bug 35617

Author: jvdelisle
Date: Tue Mar 18 04:27:56 2008
New Revision: 133302

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133302
Log:
2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35617
        * io/list_read.c (eat_separator): If next character after eatline is
'!'
        then eatline again.

Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/list_read.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3, 4.4 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (4 preceding siblings ...)
  2008-03-18  4:29 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-18  4:32 ` jvdelisle at gcc dot gnu dot org
  2008-03-18  4:36 ` [Bug fortran/35617] [4.3 " jvdelisle at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-18  4:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jvdelisle at gcc dot gnu dot org  2008-03-18 04:31 -------
Subject: Bug 35617

Author: jvdelisle
Date: Tue Mar 18 04:30:37 2008
New Revision: 133303

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133303
Log:
2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35617
        * gfortran.dg/namelist_45.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/namelist_45.f90
Modified:
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (5 preceding siblings ...)
  2008-03-18  4:32 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-18  4:36 ` jvdelisle at gcc dot gnu dot org
  2008-03-18 17:28 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-18  4:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jvdelisle at gcc dot gnu dot org  2008-03-18 04:35 -------
Fixed in trunk, will back port to 4.3


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|4.3.0 4.4.0                 |4.3.0
            Summary|[4.3, 4.4 Regression] read  |[4.3 Regression] read
                   |namelist error              |namelist error


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (6 preceding siblings ...)
  2008-03-18  4:36 ` [Bug fortran/35617] [4.3 " jvdelisle at gcc dot gnu dot org
@ 2008-03-18 17:28 ` rguenth at gcc dot gnu dot org
  2008-03-21  1:31 ` jvdelisle at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-03-18 17:28 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (7 preceding siblings ...)
  2008-03-18 17:28 ` rguenth at gcc dot gnu dot org
@ 2008-03-21  1:31 ` jvdelisle at gcc dot gnu dot org
  2008-03-21  1:39 ` jvdelisle at gcc dot gnu dot org
  2008-03-21  3:11 ` jvdelisle at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-21  1:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from jvdelisle at gcc dot gnu dot org  2008-03-21 01:30 -------
Subject: Bug 35617

Author: jvdelisle
Date: Fri Mar 21 01:29:30 2008
New Revision: 133411

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133411
Log:
2008-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35627
        Backport from trunk.
        * io/list_read.c (free_line): Clear the line buffer enable flag and
        reset the index into line_buffer, aka item_count.
        (next_char): Cleanup whitespace.
        (read_logical): Use unget_char to assure that the first character of
the
        bad logical is saved in case it is part of an object name. Remove the
        clearing of index and flag that is now in free_line.
        (read_real): Likewise.

        PR libfortran/35617
        Backport from trunk.
        * io/list_read.c (eat_separator): If next character after eatline is
'!'
        then eatline again. 

Modified:
    branches/gcc-4_3-branch/libgfortran/ChangeLog
    branches/gcc-4_3-branch/libgfortran/io/list_read.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (8 preceding siblings ...)
  2008-03-21  1:31 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-21  1:39 ` jvdelisle at gcc dot gnu dot org
  2008-03-21  3:11 ` jvdelisle at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-21  1:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from jvdelisle at gcc dot gnu dot org  2008-03-21 01:38 -------
Subject: Bug 35617

Author: jvdelisle
Date: Fri Mar 21 01:37:38 2008
New Revision: 133413

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133413
Log:
2008-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        Backport from trunk:
        PR libfortran/35627
        * gfortran.dg/namelist_46.f90: New test.

        PR libfortran/35617
        * gfortran.dg/namelist_45.f90: New test.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/namelist_45.f90
Modified:
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/35617] [4.3 Regression] read namelist error
  2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
                   ` (9 preceding siblings ...)
  2008-03-21  1:39 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-21  3:11 ` jvdelisle at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-21  3:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jvdelisle at gcc dot gnu dot org  2008-03-21 03:10 -------
Fixed on 4.3


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35617


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-03-21  3:11 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-17 17:33 [Bug fortran/35617] New: read namelist error pletzer at txcorp dot com
2008-03-17 18:33 ` [Bug fortran/35617] " pletzer at txcorp dot com
2008-03-17 23:21 ` [Bug fortran/35617] [4.3, 4.4 Regression] " burnus at gcc dot gnu dot org
2008-03-18  2:30 ` jvdelisle at gcc dot gnu dot org
2008-03-18  4:26 ` jvdelisle at gcc dot gnu dot org
2008-03-18  4:29 ` jvdelisle at gcc dot gnu dot org
2008-03-18  4:32 ` jvdelisle at gcc dot gnu dot org
2008-03-18  4:36 ` [Bug fortran/35617] [4.3 " jvdelisle at gcc dot gnu dot org
2008-03-18 17:28 ` rguenth at gcc dot gnu dot org
2008-03-21  1:31 ` jvdelisle at gcc dot gnu dot org
2008-03-21  1:39 ` jvdelisle at gcc dot gnu dot org
2008-03-21  3:11 ` jvdelisle at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).