Fix ICEs due to recent jump-to-return optimization

gcc/
	* cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
	and return are available before trying to use them.
This commit is contained in:
Jeff Law 2022-09-27 01:44:38 -04:00
parent b04208895f
commit 5da546d7e0

View file

@ -4049,7 +4049,8 @@ fixup_reorder_chain (void)
rtx_insn *ret, *use;
basic_block dest;
if (bb_is_just_return (e_fall->dest, &ret, &use)
&& (PATTERN (ret) == simple_return_rtx || PATTERN (ret) == ret_rtx))
&& ((PATTERN (ret) == simple_return_rtx && targetm.have_simple_return ())
|| (PATTERN (ret) == ret_rtx && targetm.have_return ())))
{
ret_label = PATTERN (ret);
dest = EXIT_BLOCK_PTR_FOR_FN (cfun);