This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libfortran/34427] [4.3 Regression] Revision 130708 breaks namelist input
- From: "jvdelisle at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Dec 2007 04:34:17 -0000
- Subject: [Bug libfortran/34427] [4.3 Regression] Revision 130708 breaks namelist input
- References: <bug-34427-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #22 from jvdelisle at gcc dot gnu dot org 2007-12-12 04:34 -------
Reply to comment #20:
It does not matter since we translate all variable names to lower case. It
would matter if we used this mechanism to read literal string constants, but we
don't. I will look that over a bit more before we are all done with this.
I am looking at using l_push_char here instead of save. Tobias. do as you
please. We can either revert the original patch and get back to this without
time pressure or proceed quickly. I would prefer to use the l_push mechanism
to reduce duplicative code, but if we do use l_push we have to approach the
matching differently.
With the current patch I am now concerned about hitting EOL or EOF conditions,
since we do not test the character after each read. For example:
IMPLICIT NONE
real , DIMENSION(11) ::foo
real :: isfflx
NAMELIST /nl/ foo
NAMELIST /nl/ isfflx
open (10, status="scratch")
write (10,*) " &nl"
write (10,*) " foo = 5, 5, 5,"
write (10,*) " isfflx = infin/"
rewind (10)
READ (10, NML = nl, ERR = 9200)
CLOSE (10)
STOP
9200 CALL abort ()
END
I think this will give an error, but have not had time to check.
Reply to comment #21, we do need to fix parse_real since it is used to
read_complex.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34427