aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-uninit.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-01-26 14:50:03 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-01-26 14:50:03 +0000
commit3cd58c0fae56c8092a3542d60fdefaee08d87b27 (patch)
tree7dda80279fc13188e5fbef3b9399771004a83eb3 /gcc/tree-ssa-uninit.c
parent96af01aea54e4a3b3ab855dd7c3028710eafa5ab (diff)
downloadgcc-3cd58c0fae56c8092a3542d60fdefaee08d87b27.zip
gcc-3cd58c0fae56c8092a3542d60fdefaee08d87b27.tar.gz
gcc-3cd58c0fae56c8092a3542d60fdefaee08d87b27.tar.bz2
re PR middle-end/64764 (internal compiler error: in is_value_included_in, at tree-ssa-uninit.c:942)
2015-01-26 Richard Biener <rguenther@suse.de> PR middle-end/64764 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle combining two BIT_AND_EXPR predicates. * gcc.dg/uninit-19.c: New testcase. From-SVN: r220111
Diffstat (limited to 'gcc/tree-ssa-uninit.c')
-rw-r--r--gcc/tree-ssa-uninit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c
index 25aae19..d04c185 100644
--- a/gcc/tree-ssa-uninit.c
+++ b/gcc/tree-ssa-uninit.c
@@ -1377,7 +1377,8 @@ is_pred_expr_subset_of (pred_info expr1, pred_info expr2)
if (expr2.invert)
code2 = invert_tree_comparison (code2, false);
- if (code1 == EQ_EXPR && code2 == BIT_AND_EXPR)
+ if ((code1 == EQ_EXPR || code1 == BIT_AND_EXPR)
+ && code2 == BIT_AND_EXPR)
return wi::eq_p (expr1.pred_rhs,
wi::bit_and (expr1.pred_rhs, expr2.pred_rhs));