aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@apple.com>2004-07-07 21:28:01 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2004-07-07 14:28:01 -0700
commit5f7b21560685728b826f0702459292806ea8bbb8 (patch)
treebb630ebdf8d40067ec29827b4078b9705fae0a5f
parent3a18db48e967ad9d788c1ffc1eae3d1ecd99f903 (diff)
downloadgcc-5f7b21560685728b826f0702459292806ea8bbb8.zip
gcc-5f7b21560685728b826f0702459292806ea8bbb8.tar.gz
gcc-5f7b21560685728b826f0702459292806ea8bbb8.tar.bz2
re PR tree-optimization/15777 (Fold does not always fold sub trees)
2004-07-07 Andrew Pinski <apinski@apple.com> PR tree-optimization/15777 * fold-const.c (fold_single_bit_test): Fold the x^1 expression. From-SVN: r84231
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/fold-const.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 134e1ea..af05838 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2004-07-07 Andrew Pinski <apinski@apple.com>
+ PR tree-optimization/15777
+ * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
+
* expr.c (expand_expr_real_1): Fix formating.
BUFFER_REF and IN_EXPR are dead.
* fold-const.c (non_lvalue): BUFFER_REF is dead.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index b68e470..ca04250 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5849,8 +5849,8 @@ fold_single_bit_test (enum tree_code code, tree arg0, tree arg1,
inner, size_int (bitnum));
if (code == EQ_EXPR)
- inner = build2 (BIT_XOR_EXPR, intermediate_type,
- inner, integer_one_node);
+ inner = fold (build2 (BIT_XOR_EXPR, intermediate_type,
+ inner, integer_one_node));
/* Put the AND last so it can combine with more things. */
inner = build2 (BIT_AND_EXPR, intermediate_type,