diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2008-05-12 18:55:43 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-05-12 18:55:43 +0200 |
commit | 162bfc7efa6dd23a317147f89c557a709488b78b (patch) | |
tree | 3303ac6a9a00c9e80c196162984587a511547af7 /gcc/recog.c | |
parent | 3d4e720adc67915aa603b23a9d61e393c9000a91 (diff) | |
download | gcc-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.c | 10 |
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); } |