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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-11-09
     Ever confirmed|0                           |1
                 CC|                            |anlauf at gcc dot gnu.org
           Priority|P3                          |P4

--- Comment #5 from anlauf at gcc dot gnu.org ---
So sth. technically similar to

diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c
index 65bcfa6162f..1338f7e3114 100644
--- a/gcc/fortran/misc.c
+++ b/gcc/fortran/misc.c
@@ -224,6 +224,14 @@ gfc_typename (gfc_expr *ex)

   if (ex->ts.type == BT_CHARACTER)
     {
+      if (ex->expr_type != EXPR_CONSTANT)
+       {
+         if (ex->ts.kind == gfc_default_character_kind)
+           sprintf (buffer, "CHARACTER");
+         else
+           sprintf (buffer, "CHARACTER(KIND=%d)", ex->ts.kind);
+         return buffer;
+       }
       if (ex->ts.u.cl && ex->ts.u.cl->length)
        length = gfc_mpz_get_hwi (ex->ts.u.cl->length->value.integer);
       else

(or a cleaned up version of that function) would solve this?

Reply via email to