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

--- Comment #4 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
This fixes it:

Index: io/write.c
===================================================================
--- io/write.c    (revision 221571)
+++ io/write.c    (working copy)
@@ -1704,10 +1704,11 @@
   size_t clen;
   index_type elem_ctr;
   size_t obj_name_len;
-  void * p ;
+  void * p;
   char cup;
   char * obj_name;
   char * ext_name;
+  char * q;
   size_t ext_name_len;
   char rep_buff[NML_DIGITS];
   namelist_info * cmp;
@@ -1745,6 +1746,8 @@
       for (dim_i = len; dim_i < clen; dim_i++)
     {
       cup = toupper ((int) obj->var_name[dim_i]);
+      if (cup == '+')
+        cup = '%';
       write_character (dtp, &cup, 1, 1, NODELIM);
     }
       write_character (dtp, "=", 1, 1, NODELIM);
@@ -1894,6 +1897,9 @@
         }

           ext_name[tot_len] = '\0';
+          for (q = ext_name; *q; q++)
+        if (*q == '+')
+          *q = '%';

           /* Now obj_name.  */

Reply via email to