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).