2015-11-20 Jakub Jelinek <jakub@redhat.com>
+ PR middle-end/68221
+ * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
+ has non-zero bias, subtract it in integer type instead of
+ pointer plus of negated bias.
+
PR middle-end/68339
* omp-low.c (expand_simd_clones): Call node->get_body () before
allocating stuff in GC.
if (!integer_zerop (bias))
{
- bias = fold_convert_loc (clause_loc, sizetype, bias);
- bias = fold_build1_loc (clause_loc, NEGATE_EXPR,
- sizetype, bias);
- x = fold_build2_loc (clause_loc, POINTER_PLUS_EXPR,
- TREE_TYPE (x), x, bias);
+ bias = fold_convert_loc (clause_loc, pointer_sized_int_node,
+ bias);
+ yb = fold_convert_loc (clause_loc, pointer_sized_int_node,
+ x);
+ yb = fold_build2_loc (clause_loc, MINUS_EXPR,
+ pointer_sized_int_node, yb, bias);
+ x = fold_convert_loc (clause_loc, TREE_TYPE (x), yb);
yb = create_tmp_var (ptype, name);
gimplify_assign (yb, x, ilist);
x = yb;
+2015-11-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/68221
+ * testsuite/libgomp.c/reduction-11.c: Remove xfail.
+ * testsuite/libgomp.c/reduction-12.c: Likewise.
+ * testsuite/libgomp.c++/reduction-11.C: Likewise.
+ * testsuite/libgomp.c++/reduction-12.C: Likewise.
+
2015-11-19 Nathan Sidwell <nathan@codesourcery.com>
* libgomp.oacc-c-c++-common/reduction-dbl.c: New.