[Bug c++/59813] tail-call elimination didn't fire for left-shift of char to cout

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon May 20 21:34:00 GMT 2019


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

--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Mon May 20 21:33:46 2019
New Revision: 271440

URL: https://gcc.gnu.org/viewcvs?rev=271440&root=gcc&view=rev
Log:
        PR c++/59813
        PR target/90418
        * function.h (struct function): Add calls_eh_return member.
        * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
        gimplifying __builtin_eh_return call.
        * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
        to cfun.
        (expand_call_inline): Or in src_cfun->calls_eh_return into
        dst_cfun->calls_eh_return.
        * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
        cfun->calls_eh_return.
        * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
        * lto-streamer-out.c (output_struct_function_base): Write
        calls_eh_return.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/function.h
    trunk/gcc/gimplify.c
    trunk/gcc/lto-streamer-in.c
    trunk/gcc/lto-streamer-out.c
    trunk/gcc/tree-inline.c
    trunk/gcc/tree-tailcall.c


More information about the Gcc-bugs mailing list