2010-11-26 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Nov 2010 12:42:41 +0000 (12:42 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Nov 2010 12:42:41 +0000 (12:42 +0000)
PR tree-optimization/46664
* tree-affine.c (aff_combination_to_tree): Add rest last.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167173 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-affine.c

index 8cfc963..05c19eb 100644 (file)
@@ -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
index a02d56c..c57eaff 100644 (file)
@@ -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))