aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2008-05-12 18:55:43 +0200
committerUros Bizjak <uros@gcc.gnu.org>2008-05-12 18:55:43 +0200
commit162bfc7efa6dd23a317147f89c557a709488b78b (patch)
tree3303ac6a9a00c9e80c196162984587a511547af7 /gcc/recog.c
parent3d4e720adc67915aa603b23a9d61e393c9000a91 (diff)
downloadgcc-162bfc7efa6dd23a317147f89c557a709488b78b.zip
gcc-162bfc7efa6dd23a317147f89c557a709488b78b.tar.gz
gcc-162bfc7efa6dd23a317147f89c557a709488b78b.tar.bz2
re PR rtl-optimization/36111 (GCC 4.4.0-20080501 failed to compile openmpi's malloc.c file.)
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. From-SVN: r135221
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 7303b2a..91e4e99 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);
}