summaryrefslogtreecommitdiffstats
path: root/gcc/recog.c
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-12 16:55:43 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-12 16:55:43 +0000
commit5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6 (patch)
tree3303ac6a9a00c9e80c196162984587a511547af7 /gcc/recog.c
parentf1984c5732a8b17b8f085ed0befaeb2f443d001e (diff)
downloadppe42-gcc-5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6.tar.gz
ppe42-gcc-5612e2f1f15bdd09bc1e0d1cfcfd63b654949bc6.zip
PR rtl-optimization/36111
* recog.c (validate_replace_rtx_1): Unshare new RTL expression that was created for swappable operands. testsuite/ChangeLog: PR rtl-optimization/36111 * gcc.dg/pr36111.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135221 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 7303b2a86f3..91e4e999d6c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -589,11 +589,11 @@ validate_replace_rtx_1 (rtx *loc, rtx from, rtx to, rtx object)
if (SWAPPABLE_OPERANDS_P (x)
&& swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1)))
{
- validate_change (object, loc,
- gen_rtx_fmt_ee (COMMUTATIVE_ARITH_P (x) ? code
- : swap_condition (code),
- GET_MODE (x), XEXP (x, 1),
- XEXP (x, 0)), 1);
+ validate_unshare_change (object, loc,
+ gen_rtx_fmt_ee (COMMUTATIVE_ARITH_P (x) ? code
+ : swap_condition (code),
+ GET_MODE (x), XEXP (x, 1),
+ XEXP (x, 0)), 1);
x = *loc;
code = GET_CODE (x);
}
OpenPOWER on IntegriCloud