These three function used a hardcoded buffer of 100 but would be better off to base off GFC_MAX_SYMBOL_LEN which denotes the maximum length of a name in any of our supported standards (63 as of f2003 ff.).
Regstrapped without regressions, ok for trunk stage3 now / next stage1? gcc/fortran/ChangeLog 2015-11-29 Bernhard Reutner-Fischer <al...@gcc.gnu.org> * interface.c (check_sym_interfaces, check_uop_interfaces, gfc_check_interfaces): Base interface_name buffer off GFC_MAX_SYMBOL_LEN. Signed-off-by: Bernhard Reutner-Fischer <rep.dot....@gmail.com> --- gcc/fortran/interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index dcf3eae..30cc522 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -1696,7 +1696,7 @@ check_interface1 (gfc_interface *p, gfc_interface *q0, static void check_sym_interfaces (gfc_symbol *sym) { - char interface_name[100]; + char interface_name[GFC_MAX_SYMBOL_LEN + sizeof("generic interface ''")]; gfc_interface *p; if (sym->ns != gfc_current_ns) @@ -1733,7 +1733,7 @@ check_sym_interfaces (gfc_symbol *sym) static void check_uop_interfaces (gfc_user_op *uop) { - char interface_name[100]; + char interface_name[GFC_MAX_SYMBOL_LEN + sizeof("operator interface ''")]; gfc_user_op *uop2; gfc_namespace *ns; @@ -1810,7 +1810,7 @@ void gfc_check_interfaces (gfc_namespace *ns) { gfc_namespace *old_ns, *ns2; - char interface_name[100]; + char interface_name[GFC_MAX_SYMBOL_LEN + sizeof("intrinsic '' operator")]; int i; old_ns = gfc_current_ns; -- 2.6.2