[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582 Jonathan Wakely changed: What|Removed |Added Known to fail|| --- Comment #20 from Jonathan Wakely --- (In reply to Jerry DeLisle from comment #16) > I did commit these fixes but reversed two digits in the PR number in the > change log so they did not record here. Fix follows. The relevant commits where r138072 and r138073, and r138170 and r138172.
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #19 from jvdelisle at gcc dot gnu dot org 2008-08-09 19:19 --- Closing -- 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=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #18 from jvdelisle at gcc dot gnu dot org 2008-08-09 19:18 --- Subject: Bug 36582 Author: jvdelisle Date: Sat Aug 9 19:17:24 2008 New Revision: 138914 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138914 Log: 2008-07-22 Jerry DeLisle <[EMAIL PROTECTED]> PR fortran/36582 * io/list_read.c: If variable rank is zero, do not adjust the found namelist object pointer. Fix ChangeLog. Modified: trunk/libgfortran/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #17 from jvdelisle at gcc dot gnu dot org 2008-08-09 19:13 --- Subject: Bug 36582 Author: jvdelisle Date: Sat Aug 9 19:12:04 2008 New Revision: 138913 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138913 Log: 2008-07-26 Jerry DeLisle <[EMAIL PROTECTED]> PR fortran/36582 Backport from trunk. Fix ChangeLog. * io/list_read.c: If variable rank is zero, do not adjust the found namelist object pointer. Modified: branches/gcc-4_3-branch/libgfortran/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #16 from jvdelisle at gcc dot gnu dot org 2008-08-09 19:05 --- I did commit these fixes but reversed two digits in the PR number in the change log so they did not record here. Fix follows. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #15 from jvdelisle at gcc dot gnu dot org 2008-08-09 05:20 --- I was holding this open until I back port to 4.3. I got too busy on other stuff, so I will try this weekend. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #14 from jv244 at cam dot ac dot uk 2008-08-08 22:27 --- This appears fixed on current trunk, should the bug be closed. -- jv244 at cam dot ac dot uk changed: What|Removed |Added Known to fail|4.1.3 4.2.1 4.3.1 4.4.0 |4.1.3 4.2.1 4.3.1 Known to work||4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #13 from fmuldoo at me dot lsu dot edu 2008-07-22 22:54 --- Subject: Re: Namelist I/O error: Bogus "Cannot match namelist object" Great, and thanks very much. I'm very glad you found it as it is the only thing preventing me from using gfortran with my code. This is the first time I have reported anything here and do not know the procedure of how fixes such as this make it into packages that one can download. Thanks again, Frank On Tue, 2008-07-22 at 05:02 +, jvdelisle at gcc dot gnu dot org wrote: > > --- Comment #12 from jvdelisle at gcc dot gnu dot org 2008-07-22 05:02 > --- > Finally had some quiet time to pick at this. Yep, a one liner. This fixes > the > test case and no namelist regressions. > > Index: list_read.c > === > --- list_read.c (revision 138020) > +++ list_read.c (working copy) > @@ -2791,7 +2791,7 @@ get_name: > >if (nl->type == GFC_DTYPE_DERIVED) > nml_touch_nodes (nl); > - if (component_flag) > + if (component_flag && nl->var_rank > 0) > nl = first_nl; > >/* Make sure no extraneous qualifiers are there. */ > > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #12 from jvdelisle at gcc dot gnu dot org 2008-07-22 05:02 --- Finally had some quiet time to pick at this. Yep, a one liner. This fixes the test case and no namelist regressions. Index: list_read.c === --- list_read.c (revision 138020) +++ list_read.c (working copy) @@ -2791,7 +2791,7 @@ get_name: if (nl->type == GFC_DTYPE_DERIVED) nml_touch_nodes (nl); - if (component_flag) + if (component_flag && nl->var_rank > 0) nl = first_nl; /* Make sure no extraneous qualifiers are there. */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #11 from jvdelisle at gcc dot gnu dot org 2008-07-08 15:52 --- So far this is a tricky one. Probably turn out to be a one liner or a re-write. :) Status is I am on travel, but still working it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #10 from jvdelisle at gcc dot gnu dot org 2008-06-22 05:52 --- Correction, the IF clause is not relevant. Index: libgfortran/io/list_read.c === --- libgfortran/io/list_read.c (revision 136998) +++ libgfortran/io/list_read.c (working copy) @@ -2649,7 +2649,7 @@ get_name: if (!is_separator (c)) push_char (dtp, tolower(c)); c = next_char (dtp); -} while (!( c=='=' || c==' ' || c=='\t' || c =='(' || c =='%' )); +} while (!( c=='=' || c==' ' || c=='\t' || c =='(' )); unget_char (dtp, c); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #9 from jvdelisle at gcc dot gnu dot org 2008-06-22 05:50 --- This patch fixes the test case and requires adjustment to namelist_40.f90 and namelist_47.f90. I am not completely satisfied with this because it leaves us a less informative error message in those two test cases. I will explore a bit more. Index: libgfortran/io/list_read.c === --- libgfortran/io/list_read.c (revision 136998) +++ libgfortran/io/list_read.c (working copy) @@ -2649,7 +2649,10 @@ get_name: if (!is_separator (c)) push_char (dtp, tolower(c)); c = next_char (dtp); -} while (!( c=='=' || c==' ' || c=='\t' || c =='(' || c =='%' )); +} while (!( c=='=' || c==' ' || c=='\t' || c =='(' )); + + if (c == '%') +push_char (dtp, c); unget_char (dtp, c); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #8 from jvdelisle at gcc dot gnu dot org 2008-06-21 16:38 --- Status: I have started investigating this bug. It is not typical in the sense that the last several namelist bugs involved parsing and whitespace issues. With this bug, we appear to end up with a namelist object whose name is '\0'. I am only just getting started, so more later. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #7 from fmuldoo at me dot lsu dot edu 2008-06-21 08:47 --- Subject: Re: Namelist I/O error: Bogus "Cannot match namelist object" Hello Burnus, Thanks for explaining that to me. It is clear now. Regards, Frank On Sat, 2008-06-21 at 08:32 +, burnus at gcc dot gnu dot org wrote: > > --- Comment #6 from burnus at gcc dot gnu dot org 2008-06-21 08:32 > --- > > I am not sure what is meant by "regression". > > Regression means that it used to work in a previous version of gfortran and > someone managed to break it. This is especially bad as code which worked > before > then stops working. This is the reason why all Priority 1 (and possibly P2) > regressions need to be fixed or downgraded before any new GCC release is done. > > Regressions are also the only bugs which may be fixed for minor releases (e.g. > for the next 4.3.x version), though exceptions are made for serious bugs > especially if the fix is algorithmically simple. (Otherwise not as by fixing > one thing, one might create another bug -> a regression.) > > > Am I correct in assuming that you do not regard it as an error? > > No, if it is valid (ISO standard) Fortran then we definitely want to fix it. > (If it is a vendor extension, we only might fix it.) In your case it seems to > be valid Fortran and I believe it will be fixed soonish, though possibly only > for GCC 4.4.0 and not for 4.3.2 [or 4.2.x]. > > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #6 from burnus at gcc dot gnu dot org 2008-06-21 08:32 --- > I am not sure what is meant by "regression". Regression means that it used to work in a previous version of gfortran and someone managed to break it. This is especially bad as code which worked before then stops working. This is the reason why all Priority 1 (and possibly P2) regressions need to be fixed or downgraded before any new GCC release is done. Regressions are also the only bugs which may be fixed for minor releases (e.g. for the next 4.3.x version), though exceptions are made for serious bugs especially if the fix is algorithmically simple. (Otherwise not as by fixing one thing, one might create another bug -> a regression.) > Am I correct in assuming that you do not regard it as an error? No, if it is valid (ISO standard) Fortran then we definitely want to fix it. (If it is a vendor extension, we only might fix it.) In your case it seems to be valid Fortran and I believe it will be fixed soonish, though possibly only for GCC 4.4.0 and not for 4.3.2 [or 4.2.x]. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #5 from jvdelisle at gcc dot gnu dot org 2008-06-20 13:37 --- I will take a shot at this one. -- 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-06-20 12:27:53 |2008-06-20 13:37:07 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #4 from aldot at gcc dot gnu dot org 2008-06-20 13:33 --- (In reply to comment #3) > Subject: Re: Namelist I/O error: Bogus "Cannot match > namelist object" > > Hello, > > I am not sure what is meant by "regression". Am I correct in assuming > that you do not regard it as an error? > > Regards, > Frank > > On Fri, 2008-06-20 at 12:27 +, burnus at gcc dot gnu dot org wrote: > > > > --- Comment #2 from burnus at gcc dot gnu dot org 2008-06-20 12:27 > > --- > > CONFIRM. The read file contains (see comments in the attached file): > > > > &info_adjoint adjoint%solver_type='direct'/ > > > > Fortran runtime error: Cannot match namelist object name 'direct' > > > > The file works with other F95 compilers and is thus presumably valid; however, > > it is no regression. Frank, a regression is something that worked before but does no longer work. Tobias said that it is presumably valid code and that it does not work (but never did with gfortran). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #3 from fmuldoo at me dot lsu dot edu 2008-06-20 12:32 --- Subject: Re: Namelist I/O error: Bogus "Cannot match namelist object" Hello, I am not sure what is meant by "regression". Am I correct in assuming that you do not regard it as an error? Regards, Frank On Fri, 2008-06-20 at 12:27 +, burnus at gcc dot gnu dot org wrote: > > --- Comment #2 from burnus at gcc dot gnu dot org 2008-06-20 12:27 > --- > CONFIRM. The read file contains (see comments in the attached file): > > &info_adjoint adjoint%solver_type='direct'/ > > Fortran runtime error: Cannot match namelist object name 'direct' > > The file works with other F95 compilers and is thus presumably valid; however, > it is no regression. > > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582
[Bug fortran/36582] Namelist I/O error: Bogus "Cannot match namelist object"
--- Comment #2 from burnus at gcc dot gnu dot org 2008-06-20 12:27 --- CONFIRM. The read file contains (see comments in the attached file): &info_adjoint adjoint%solver_type='direct'/ Fortran runtime error: Cannot match namelist object name 'direct' The file works with other F95 compilers and is thus presumably valid; however, it is no regression. -- burnus at gcc dot gnu dot org changed: What|Removed |Added CC||jvdelisle at gcc dot gnu dot ||org Severity|blocker |normal Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||wrong-code Known to fail||4.1.3 4.2.1 4.3.1 4.4.0 Last reconfirmed|-00-00 00:00:00 |2008-06-20 12:27:53 date|| Summary|Namelist error |Namelist I/O error: Bogus ||"Cannot match namelist ||object" http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36582