summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/lower-subreg.c6
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c390cb5afd9..6df72e816af 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/33029
+ * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
+ note, remove the associated REG_RETVAL note.
+
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config.gcc (powerpc*-*-*): Install
@@ -8463,7 +8469,6 @@
PR tree-optimization/19590
* tree-vrp.c (adjust_range_with_scev): Set the range when the result
of scev is a constant.
- * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index 4354640a701..696ec61e58d 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -897,7 +897,7 @@ resolve_simple_move (rtx set, rtx insn)
static bool
resolve_clobber (rtx pat, rtx insn)
{
- rtx reg;
+ rtx reg, note;
enum machine_mode orig_mode;
unsigned int words, i;
int ret;
@@ -909,8 +909,10 @@ resolve_clobber (rtx pat, rtx insn)
/* If this clobber has a REG_LIBCALL note, then it is the initial
clobber added by emit_no_conflict_block. We were able to
decompose the register, so we no longer need the clobber. */
- if (find_reg_note (insn, REG_LIBCALL, NULL_RTX) != NULL_RTX)
+ note = find_reg_note (insn, REG_LIBCALL, NULL_RTX);
+ if (note != NULL_RTX)
{
+ remove_retval_note (XEXP (note, 0));
delete_insn (insn);
return true;
}