]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR tree-optimization/89280
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Feb 2019 08:41:01 +0000 (08:41 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Feb 2019 08:41:01 +0000 (08:41 +0000)
commit400c29ffbee02ea7c52ed86e7b5d2359bd8c2213
tree66c4d0dd87dc43efd7efd427e5e150dfad26917e
parent0ab323427675e178efdefc397fa82f7f8530a182
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269243 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr89280.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr57147-2.c
gcc/tree-cfgcleanup.c