[Bug libfortran/34427] [4.3 Regression] Revision 130708 breaks namelist input
jvdelisle at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Dec 12 04:34:00 GMT 2007
------- 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
More information about the Gcc-bugs
mailing list