https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107068

--- Comment #8 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
After a bit of sleuthing it turns out that the '(' in the name was being
ignored and the comma in '(1,2)' was being treated as a delimiter.  Since the
following '=' was not seen yet, the 2 was seen as a repeat value and we get the
error.

This is fixed with the following patch:

diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index f8ca64422de..0b7884fdda7 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -888,6 +888,14 @@ read_logical (st_parameter_dt *dtp, int length)
   for(i = 0; i < 63; i++)
     {
       c = next_char (dtp);
+      if (c == '(')
+       {
+         l_push_char (dtp, c);
+         dtp->u.p.nml_read_error = 1;
+         dtp->u.p.line_buffer_enabled = 1;
+         dtp->u.p.line_buffer_pos = 0;
+         return;
+       }
       if (is_separator(c))
        {
          /* All done if this is not a namelist read.  */
  • [Bug libfortran/107068] Run-tim... jvdelisle at gcc dot gnu.org via Gcc-bugs

Reply via email to