From: Jeff Law Date: Tue, 27 Sep 2022 05:44:38 +0000 (-0400) Subject: Fix ICEs due to recent jump-to-return optimization X-Git-Tag: basepoints/gcc-14~4319 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5da546d7e0561def07c783e6ec897aaa9e7837c6;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/cfgrtl.cc b/gcc/cfgrtl.cc index 90cd6ee56a7b..281a432f6a6c 100644 --- a/gcc/cfgrtl.cc +++ b/gcc/cfgrtl.cc @@ -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);