+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.
+
2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
PR bootstrap/64754
* tree-ssa-structalias.c (new_var_info): Initialize ruid.
----
+
2015-01-26 Terry Guo <terry.guo@arm.com>
* config/arm/arm.c (arm_file_start): Update the assignment of
+2015-01-26 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/64764
+ * gcc.dg/uninit-19.c: New testcase.
+
2015-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* lib/target-supports.exp (check_effective_target_vect64): Add
--- /dev/null
+/* { dg-do compile } */\r
+/* { dg-options "-O -Wuninitialized" } */\r
+\r
+int a, l, m;\r
+float *b;\r
+float c, d, e, g, h;\r
+unsigned char i, k;\r
+void\r
+fn1 (int p1, float *f1, float *f2, float *f3, unsigned char *c1, float *f4,\r
+ unsigned char *c2, float *p10)\r
+{\r
+ if (p1 & 8)\r
+ b[3] = p10[a]; /* { dg-warning "may be used uninitialized" } */\r
+}\r
+\r
+void\r
+fn2 ()\r
+{\r
+ float *n;\r
+ if (l & 6)\r
+ n = &c + m;\r
+ fn1 (l, &d, &e, &g, &i, &h, &k, n);\r
+}\r
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));