https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69246

--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> ---
The following patch does the trick, if having REG_ARGS_SIZE on sibcalls
is correct that is.  I couldn't find any documentation on REG_ARGS_SIZE.

--- 8< ---
diff --git a/gcc/combine.c b/gcc/combine.c
index d088031..65091e2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -13690,7 +13690,8 @@ distribute_notes (rtx notes, rtx_insn *from_insn,
rtx_in
              gcc_assert (old_size != args_size
                          || (CALL_P (i3)
                              && !ACCUMULATE_OUTGOING_ARGS
-                             && find_reg_note (i3, REG_NORETURN, NULL_RTX)));
+                             && (find_reg_note (i3, REG_NORETURN, NULL_RTX)
+                                 || SIBLING_CALL_P (i3))));
            }
          break;

--- 8< ---

Reply via email to