aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-01-28 20:36:44 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-01-28 20:36:44 +0100
commit591e29d9da4cb934419efab7e73468df42af9186 (patch)
tree738974e0dfcd7dab87ec93691e86e2079883ce31 /gcc/expr.c
parent62dcc44a4bbe224aaac5d5dccb4703382b3a84e5 (diff)
downloadgcc-591e29d9da4cb934419efab7e73468df42af9186.zip
gcc-591e29d9da4cb934419efab7e73468df42af9186.tar.gz
gcc-591e29d9da4cb934419efab7e73468df42af9186.tar.bz2
re PR target/42894 (Invalid rtl sharing in Thumb1.)
PR target/42894 * varasm.c (force_const_mem): Store copy of x in desc->constant instead of x itself. * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst itself into REG_EQUAL note. * gcc.dg/tls/pr42894.c: New test. From-SVN: r169370
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 7441548..e6b4279 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3398,7 +3398,7 @@ emit_move_insn (rtx x, rtx y)
&& (set = single_set (last_insn)) != NULL_RTX
&& SET_DEST (set) == x
&& ! rtx_equal_p (y_cst, SET_SRC (set)))
- set_unique_reg_note (last_insn, REG_EQUAL, y_cst);
+ set_unique_reg_note (last_insn, REG_EQUAL, copy_rtx (y_cst));
return last_insn;
}