http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60148

--- Comment #7 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
The regressions are two fold:

1) Tests are specifically looking for a " or a ' when no longer generated,

and

2) We need to also revise namelist reading of character types which are no
longer delimited

namelist_18.f90, modify test
namelist_38.f90, error in read
namelist_56.f90, ...
namelist_70.f90, ...

My patch is as follows so far, a little different from Steve's. With this patch
I don't explicitly write a space delim because we write one in the first chunk
below.  This was needed for namelist_16.f90

Index: write.c
===================================================================
--- write.c    (revision 206864)
+++ write.c    (working copy)
@@ -1921,7 +1921,8 @@
          to column 2. Reset the repeat counter.  */

       dtp->u.p.no_leading_blank = 0;
-      write_character (dtp, &semi_comma, 1, 1);
+      if (dtp->u.p.nml_delim || (obj->type != BT_CHARACTER))
+        write_character (dtp, &semi_comma, 1, 1);
       if (num > 5)
         {
           num = 0;
@@ -1971,9 +1972,18 @@

   /* Set the delimiter for namelist output.  */
   tmp_delim = dtp->u.p.current_unit->delim_status;
+  switch (tmp_delim)
+    {
+      case DELIM_APOSTROPHE:
+        dtp->u.p.nml_delim = '\'';
+    break;
+      case DELIM_QUOTE:
+    dtp->u.p.nml_delim = '"';
+    break;
+      default:
+    dtp->u.p.nml_delim = '\0';
+    }

-  dtp->u.p.nml_delim = tmp_delim == DELIM_APOSTROPHE ? '\'' : '"';
-
   /* Temporarily disable namelist delimters.  */
   dtp->u.p.current_unit->delim_status = DELIM_NONE;

I have not looked at read yet.

Reply via email to