https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95537
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Priority|P3 |P4 Last reconfirmed| |2020-06-04 --- Comment #4 from anlauf at gcc dot gnu.org --- Thanks for the backtrace. Can you please try the following patch? diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 3ad5559c3ec..1c1626d3fa4 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -4094,7 +4094,8 @@ match_byte_typespec (gfc_typespec *ts) match gfc_match_decl_type_spec (gfc_typespec *ts, int implicit_flag) { - char name[GFC_MAX_SYMBOL_LEN + 1]; + /* Provide sufficient space to hold "pdtsymbol". */ + char name[GFC_MAX_SYMBOL_LEN + 1 + 3]; gfc_symbol *sym, *dt_sym; match m; char c; @@ -4284,7 +4285,11 @@ gfc_match_decl_type_spec (gfc_typespec *ts, int implicit_flag) return m; gcc_assert (!sym->attr.pdt_template && sym->attr.pdt_type); ts->u.derived = sym; - strcpy (name, gfc_dt_lower_string (sym->name)); + const char* lower = gfc_dt_lower_string (sym->name); + size_t len = strnlen (lower, sizeof (name)); + gcc_assert (len < sizeof (name)); + memcpy (name, lower, len); + name[len] = '\0'; } if (sym && sym->attr.flavor == FL_STRUCT)