OSDN Git Service

Fix for PR 18010, copy epilogue unwind info when copying epilogue insns.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Oct 2004 01:36:11 +0000 (01:36 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Oct 2004 01:36:11 +0000 (01:36 +0000)
* emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89624 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c

index 45edb17..38c6bfc 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-26  James E Wilson  <wilson@specifixinc.com>
+
+       PR target/18010
+       * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
+
 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
 
        * dbxout.c: Include obstack.h.
 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
 
        * dbxout.c: Include obstack.h.
index ec7bec3..ae4c3eb 100644 (file)
@@ -5548,6 +5548,11 @@ emit_copy_of_insn_after (rtx insn, rtx after)
 
   INSN_LOCATOR (new) = INSN_LOCATOR (insn);
 
 
   INSN_LOCATOR (new) = INSN_LOCATOR (insn);
 
+  /* If the old insn is frame related, then so is the new one.  This is
+     primarily needed for IA-64 unwind info which marks epilogue insns,
+     which may be duplicated by the basic block reordering code.  */
+  RTX_FRAME_RELATED_P (new) = RTX_FRAME_RELATED_P (insn);
+
   /* Copy all REG_NOTES except REG_LABEL since mark_jump_label will
      make them.  */
   for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
   /* Copy all REG_NOTES except REG_LABEL since mark_jump_label will
      make them.  */
   for (link = REG_NOTES (insn); link; link = XEXP (link, 1))