aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@codesourcery.com>2010-07-23 13:55:07 +0000
committerDaniel Jacobowitz <drow@gcc.gnu.org>2010-07-23 13:55:07 +0000
commit6afb52d3e2c1ea3376e3037d1c6e6a69ff7ac6fd (patch)
treefb249f306d4cea835d43fbc8b914ac8586ce54da /gcc
parent96f3a5d239c71dbb50ffd5c0f731fc3b5a9d0c44 (diff)
downloadgcc-6afb52d3e2c1ea3376e3037d1c6e6a69ff7ac6fd.zip
gcc-6afb52d3e2c1ea3376e3037d1c6e6a69ff7ac6fd.tar.gz
gcc-6afb52d3e2c1ea3376e3037d1c6e6a69ff7ac6fd.tar.bz2
dwarf2out.c (dwarf2out_frame_debug): Check for queued saves again after processing insn.
* dwarf2out.c (dwarf2out_frame_debug): Check for queued saves again after processing insn. From-SVN: r162460
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cbe0146..c96691a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
+ again after processing insn.
+
2010-07-23 Jie Zhang <jie@codesourcery.com>
* tree-sra.c (ipa_sra_preliminary_function_checks): Dump
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 183bbd3..239f002 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -2791,6 +2791,12 @@ dwarf2out_frame_debug (rtx insn, bool after_p)
insn = PATTERN (insn);
found:
dwarf2out_frame_debug_expr (insn, label);
+
+ /* Check again. A parallel can save and update the same register.
+ We could probably check just once, here, but this is safer than
+ removing the check above. */
+ if (clobbers_queued_reg_save (insn))
+ flush_queued_reg_saves ();
}
/* Determine if we need to save and restore CFI information around this