https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89280
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Wed Feb 27 08:41:01 2019 New Revision: 269243 URL: https://gcc.gnu.org/viewcvs?rev=269243&root=gcc&view=rev Log: PR tree-optimization/89280 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, builtin_setjmp_setup_bb): New functions. (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. When visiting __builtin_setjmp_setup block, queue in special setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks from visited after the loop if they don't have any visited successor blocks. * gcc.c-torture/compile/pr89280.c: New test. * gcc.dg/torture/pr57147-2.c: Don't expect a setjmp after noreturn function. Skip the test for -O0. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr89280.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/pr57147-2.c trunk/gcc/tree-cfgcleanup.c