https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329

--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May 29 15:55:12 2019
New Revision: 271743

URL: https://gcc.gnu.org/viewcvs?rev=271743&root=gcc&view=rev
Log:
        PR fortran/90329
        * lto-streamer.h (LTO_minor_version): Bump to 1.

        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-9-branch/gcc/ChangeLog
    branches/gcc-9-branch/gcc/calls.c
    branches/gcc-9-branch/gcc/fortran/ChangeLog
    branches/gcc-9-branch/gcc/fortran/gfortran.h
    branches/gcc-9-branch/gcc/fortran/interface.c
    branches/gcc-9-branch/gcc/fortran/invoke.texi
    branches/gcc-9-branch/gcc/fortran/lang.opt
    branches/gcc-9-branch/gcc/fortran/trans-decl.c
    branches/gcc-9-branch/gcc/lto-streamer.h
    branches/gcc-9-branch/gcc/tree-core.h
    branches/gcc-9-branch/gcc/tree-streamer-in.c
    branches/gcc-9-branch/gcc/tree-streamer-out.c
    branches/gcc-9-branch/gcc/tree.h

Reply via email to