This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libfortran/34427] [4.3 Regression] Revision 130708 breaks namelist input



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]