aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2012-08-02 20:44:38 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2012-08-02 20:44:38 +0000
commitb5b071a5688e68b783547add84949c63c49d7dc1 (patch)
tree7ebf193fc0886aa75e0dc830a863e6b85d974649
parent8e6ecdc0ad4533626d35206318b254b76748e370 (diff)
downloadgcc-b5b071a5688e68b783547add84949c63c49d7dc1.zip
gcc-b5b071a5688e68b783547add84949c63c49d7dc1.tar.gz
gcc-b5b071a5688e68b783547add84949c63c49d7dc1.tar.bz2
recog.c (split_insn): Copy the original SET_SRC before using it as a note.
gcc/ * recog.c (split_insn): Copy the original SET_SRC before using it as a note. From-SVN: r190102
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/recog.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index edecc97..524ae20 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
+ * recog.c (split_insn): Copy the original SET_SRC before using
+ it as a note.
+
+2012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
+
* reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
2012-08-02 Marc Glisse <marc.glisse@inria.fr>
diff --git a/gcc/recog.c b/gcc/recog.c
index a05e8c6..d7381ab 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2831,7 +2831,8 @@ split_insn (rtx insn)
if (note && CONSTANT_P (XEXP (note, 0)))
set_unique_reg_note (last, REG_EQUAL, XEXP (note, 0));
else if (CONSTANT_P (SET_SRC (insn_set)))
- set_unique_reg_note (last, REG_EQUAL, SET_SRC (insn_set));
+ set_unique_reg_note (last, REG_EQUAL,
+ copy_rtx (SET_SRC (insn_set)));
}
}