aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-11-16 22:30:19 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-11-16 22:30:19 +0000
commita05c8f23516bdeec9f2bfa3092f031b081405aaa (patch)
tree1798120234e788be245c8b883c0ab40e1499142f /gcc/combine.c
parentcfc76ec4d063ce5c7b80db4a3466f7974b0a554b (diff)
downloadgcc-a05c8f23516bdeec9f2bfa3092f031b081405aaa.zip
gcc-a05c8f23516bdeec9f2bfa3092f031b081405aaa.tar.gz
gcc-a05c8f23516bdeec9f2bfa3092f031b081405aaa.tar.bz2
re PR rtl-optimization/46490 (ACATS c460007 fails at -O2 or above)
PR rtl-optimization/46490 * combine.c (expand_compound_operation): Fix thinko. From-SVN: r166830
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index ee26c90..d55ce31 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6761,11 +6761,11 @@ expand_compound_operation (rtx x)
count. This can happen in a case like (x >> 31) & 255 on machines
that can't shift by a constant. On those machines, we would first
combine the shift with the AND to produce a variable-position
- extraction. Then the constant of 31 would be substituted in to produce
- a such a position. */
+ extraction. Then the constant of 31 would be substituted in
+ to produce such a position. */
modewidth = GET_MODE_BITSIZE (GET_MODE (x));
- if (modewidth + len >= pos)
+ if (modewidth >= pos + len)
{
enum machine_mode mode = GET_MODE (x);
tem = gen_lowpart (mode, XEXP (x, 0));