re PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))
authorJakub Jelinek <jakub@redhat.com>
Wed, 27 Feb 2019 08:41:01 +0000 (09:41 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 27 Feb 2019 08:41:01 +0000 (09:41 +0100)
commitf86624d85f937e03110eb044e438d8316d860501
tree66c4d0dd87dc43efd7efd427e5e150dfad26917e
parent9e0ed736065afad7da7850f508f316f2954d8960
re PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))

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.

From-SVN: r269243
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