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?