From: Jakub Jelinek Date: Tue, 30 May 2017 07:20:41 +0000 (+0200) Subject: backport: re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706) X-Git-Tag: releases/gcc-5.5.0~306 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30b50f05daadc52a1f16f69067af5ab00f5bc7c0;p=thirdparty%2Fgcc.git backport: re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706) Backported from mainline 2016-09-08 Jakub Jelinek 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: r248604 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1eea27323c02..c2537a15da9a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2017-05-30 Jakub Jelinek Backported from mainline + 2016-09-08 Jakub Jelinek + + PR fortran/77516 + * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive + OMP_CLAUSE_SAFELEN_EXPR. + 2016-08-30 Jakub Jelinek PR debug/77363 diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 55afc60ed854..0ea879f37100 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -3546,7 +3546,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) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 16f15aaa6751..828e2a9b082a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2017-05-30 Jakub Jelinek Backported from mainline + 2016-09-08 Jakub Jelinek + + PR fortran/77516 + * gfortran.dg/gomp/pr77516.f90: New test. + 2016-09-05 Jakub Jelinek PR sanitizer/77396 diff --git a/gcc/testsuite/gfortran.dg/gomp/pr77516.f90 b/gcc/testsuite/gfortran.dg/gomp/pr77516.f90 new file mode 100644 index 000000000000..7852abf8bcf9 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/pr77516.f90 @@ -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