re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)

PR fortran/77516
	* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
	OMP_CLAUSE_SAFELEN_EXPR.

	* gfortran.dg/gomp/pr77516.f90: New test.

From-SVN: r240037
This commit is contained in:
Jakub Jelinek 2016-09-08 14:18:16 +02:00 committed by Jakub Jelinek
parent e124cd64ae
commit 8ebc1e0f8e
4 changed files with 26 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-09-08 Jakub Jelinek <jakub@redhat.com>
PR fortran/77516
* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
OMP_CLAUSE_SAFELEN_EXPR.
2016-09-07 David Malcolm <dmalcolm@redhat.com>
* Makefile.in (OBJS): Add substring-locations.o.

View File

@ -4302,7 +4302,9 @@ lower_rec_simd_input_clauses (tree new_var, omp_context *ctx, int &max_vf,
{
tree c = find_omp_clause (gimple_omp_for_clauses (ctx->stmt),
OMP_CLAUSE_SAFELEN);
if (c && TREE_CODE (OMP_CLAUSE_SAFELEN_EXPR (c)) != INTEGER_CST)
if (c
&& (TREE_CODE (OMP_CLAUSE_SAFELEN_EXPR (c)) != INTEGER_CST
|| tree_int_cst_sgn (OMP_CLAUSE_SAFELEN_EXPR (c)) != 1))
max_vf = 1;
else if (c && compare_tree_int (OMP_CLAUSE_SAFELEN_EXPR (c),
max_vf) == -1)

View File

@ -1,3 +1,8 @@
2016-09-08 Jakub Jelinek <jakub@redhat.com>
PR fortran/77516
* gfortran.dg/gomp/pr77516.f90: New test.
2016-09-07 Jakub Jelinek <jakub@redhat.com>
PR middle-end/77475

View File

@ -0,0 +1,12 @@
! PR fortran/77516
! { dg-do compile }
program pr77516
integer :: i, x
x = 0
!$omp simd safelen(0) reduction(+:x)
do i = 1, 8
x = x + 1
end do
print *, x
end