[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