summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2004-10-27 01:36:11 +0000
committerJim Wilson <wilson@gcc.gnu.org>2004-10-26 18:36:11 -0700
commit0a3d71f54af134bcafea29a8f8021d8bbf24cfb4 (patch)
tree53bf4ce96a26e59a4dd58a0cb24e26b9f0314bd2 /gcc/emit-rtl.c
parent93a27b7badb18e8a13cfc877c8c74e88ecc44774 (diff)
downloadgcc-0a3d71f54af134bcafea29a8f8021d8bbf24cfb4.tar.gz
Fix for PR 18010, copy epilogue unwind info when copying epilogue insns.
* emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P. From-SVN: r89624
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index ec7bec39adc..ae4c3eb40c2 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -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))