diff options
author | Richard Guenther <rguenther@suse.de> | 2010-11-26 12:42:41 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-11-26 12:42:41 +0000 |
commit | 6df588cbd18d6721fae4c05db7d78a11c2c5af7d (patch) | |
tree | 35e0caf1d5d720776b46102650df9fed06448d44 /gcc/tree-affine.c | |
parent | 4a150fc83a4d64ff1c3dbf723ee5c33604d2324d (diff) | |
download | gcc-6df588cbd18d6721fae4c05db7d78a11c2c5af7d.zip gcc-6df588cbd18d6721fae4c05db7d78a11c2c5af7d.tar.gz gcc-6df588cbd18d6721fae4c05db7d78a11c2c5af7d.tar.bz2 |
re PR lto/46664 (Failed to build 481.wrf in SPEC CPU 2006 with LTO)
2010-11-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/46664
* tree-affine.c (aff_combination_to_tree): Add rest last.
From-SVN: r167173
Diffstat (limited to 'gcc/tree-affine.c')
-rw-r--r-- | gcc/tree-affine.c | 5 |
1 files changed, 4 insertions, 1 deletions
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)) |