aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-affine.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8cfc963..05c19eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-26 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/46664
+ * tree-affine.c (aff_combination_to_tree): Add rest last.
+
2010-11-26 Michael Haubenwallner <michael.haubenwallner@salomon.at>
PR target/33637
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index a02d56c..c57eaff 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -434,7 +434,7 @@ tree
aff_combination_to_tree (aff_tree *comb)
{
tree type = comb->type;
- tree expr = comb->rest;
+ tree expr = NULL_TREE;
unsigned i;
double_int off, sgn;
tree type1 = type;
@@ -447,6 +447,9 @@ aff_combination_to_tree (aff_tree *comb)
expr = add_elt_to_tree (expr, type, comb->elts[i].val, comb->elts[i].coef,
comb);
+ if (comb->rest)
+ expr = add_elt_to_tree (expr, type, comb->rest, double_int_one, comb);
+
/* Ensure that we get x - 1, not x + (-1) or x + 0xff..f if x is
unsigned. */
if (double_int_negative_p (comb->offset))