https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99111
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |anlauf at gcc dot gnu.org Priority|P3 |P4 Status|UNCONFIRMED |NEW Last reconfirmed| |2021-02-15 --- Comment #1 from anlauf at gcc dot gnu.org --- We properly reject this with -std=... The following checks in io.c might need improvement: /* If rank is nonzero and type is not character, we allow it under GFC_STD_LEGACY. It may be assigned an Hollerith constant. */ if (e->ts.type != BT_CHARACTER) { if (!gfc_notify_std (GFC_STD_LEGACY, "Non-character in FORMAT tag " "at %L", &e->where)) return false; Since we have e->ts.type == BT_DERIVED in the present case, this could be straightforward.