https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
--- Comment #43 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Wed May 29 16:02:56 2019 New Revision: 271744 URL: https://gcc.gnu.org/viewcvs?rev=271744&root=gcc&view=rev Log: PR fortran/90329 * lto-streamer.h (LTO_minor_version): Bump to 2. Backported from mainline 2019-05-29 Jakub Jelinek <ja...@redhat.com> PR fortran/90329 * lang.opt (fbroken-callers): Remove. (ftail-call-workaround, ftail-call-workaround=): New options. * gfortran.h (struct gfc_namespace): Add implicit_interface_calls. * interface.c (gfc_procedure_use): Set implicit_interface_calls for calls to implicit interface procedures. * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround instead of flag_broken_callers. If it is not 2, also require sym->ns->implicit_interface_calls. * invoke.texi (fbroken-callers): Remove documentation. (ftail-call-workaround, ftail-call-workaround=): Document. 2019-05-19 Thomas Koenig <tkoe...@gcc.gnu.org> PR fortran/90329 * invoke.texi: Document -fbroken-callers. * lang.opt: Add -fbroken-callers. * trans-decl.c (create_function_arglist): Only set DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set. 2019-05-16 Jakub Jelinek <ja...@redhat.com> PR fortran/90329 * tree-core.h (struct tree_decl_common): Document decl_nonshareable_flag for PARM_DECLs. * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. * calls.c (expand_call): Don't try tail call if caller has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be passed on the stack and callee needs to pass any arguments on the stack. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use else if instead of series of mutually exclusive ifs. Handle DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. * trans-decl.c (create_function_arglist): Set DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if len is constant. Modified: branches/gcc-8-branch/gcc/ChangeLog branches/gcc-8-branch/gcc/calls.c branches/gcc-8-branch/gcc/fortran/ChangeLog branches/gcc-8-branch/gcc/fortran/gfortran.h branches/gcc-8-branch/gcc/fortran/interface.c branches/gcc-8-branch/gcc/fortran/invoke.texi branches/gcc-8-branch/gcc/fortran/lang.opt branches/gcc-8-branch/gcc/fortran/trans-decl.c branches/gcc-8-branch/gcc/lto-streamer.h branches/gcc-8-branch/gcc/tree-core.h branches/gcc-8-branch/gcc/tree-streamer-in.c branches/gcc-8-branch/gcc/tree-streamer-out.c branches/gcc-8-branch/gcc/tree.h