http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46313
--- Comment #13 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-09 18:24:28 UTC --- (In reply to comment #11) > + char tmp[GFC_MAX_SYMBOL_LEN]; > + strcpy (&tmp[0], derived->name); > + sprintf (string, "%s_%s", ns->proc_name->name, tmp); > + strcpy (&tmp[0], string); That scheme won't work. "tmp" is only GFC_MAX_SYMBOL_LEN long but you keep adding more and more strings. Currently, you could have: <module>_<subroutine>_<internal-sub>_<type> which has the maximal size of 4*63 + 3 = 255 characters (plus 1 for '\0'). However, GFC_MAX_SYMBOL_LEN is only: GFC_MAX_SYMBOL_LEN*2+4 = 63*2+4 = 130 characters And I do not want so see GFC_MAX_SYMBOL_LEN growing; it is already used at several places such that it will start to cause memory wastage for large programs.