]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix for PR 18010, copy epilogue unwind info when copying epilogue insns.
authorJames E Wilson <wilson@specifixinc.com>
Wed, 27 Oct 2004 01:36:11 +0000 (01:36 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 27 Oct 2004 01:36:11 +0000 (18:36 -0700)
* emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.

From-SVN: r89624

gcc/ChangeLog
gcc/emit-rtl.c

index 45edb1739a66cbe04b55786b222e0b89ea35b767..38c6bfc5014810eb3f2dfa41c70e79a3980f4da9 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.
index ec7bec39adcc6bfbbf5328bf5bb64110c942eedd..ae4c3eb40c26dde2821b20810d8fb7823ebab612 100644 (file)
@@ -5548,6 +5548,11 @@ emit_copy_of_insn_after (rtx insn, rtx after)
 
   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))