From fd6def3e863cb076f053eabe56e71dbff2aed049 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 Jun 2018 23:09:32 +0200 Subject: [PATCH] backport: re PR fortran/85313 (gcc/fortran/openmp.c: 2 * confused logic ?) Backported from mainline 2018-04-10 Jakub Jelinek PR fortran/85313 * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. (resolve_oacc_nested_loops): Likewise. Formatting fix. * gfortran.dg/gomp/pr85313.f90: New test. From-SVN: r261952 --- gcc/fortran/ChangeLog | 9 ++++++++ gcc/fortran/openmp.c | 8 ++----- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/gomp/pr85313.f90 | 25 ++++++++++++++++++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/gomp/pr85313.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6541331e05e1..95d622a7a21b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2018-06-22 Jakub Jelinek + + Backported from mainline + 2018-04-10 Jakub Jelinek + + PR fortran/85313 + * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;. + (resolve_oacc_nested_loops): Likewise. Formatting fix. + 2018-06-13 Steven G. Kargl PR fortran/86110 diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 746785c88933..8f7c622bbedc 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -5575,8 +5575,6 @@ resolve_omp_do (gfc_code *code) "iteration space at %L", name, &do_code->loc); break; } - if (j < i) - break; do_code2 = do_code2->block->next; } } @@ -5740,12 +5738,10 @@ resolve_oacc_nested_loops (gfc_code *code, gfc_code* do_code, int collapse, || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->end) || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->step)) { - gfc_error ("!$ACC LOOP %s loops don't form rectangular iteration space at %L", - clause, &do_code->loc); + gfc_error ("!$ACC LOOP %s loops don't form rectangular " + "iteration space at %L", clause, &do_code->loc); break; } - if (j < i) - break; do_code2 = do_code2->block->next; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b9e935cd3cb4..2a1ddd18a272 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2018-06-22 Jakub Jelinek Backported from mainline + 2018-04-10 Jakub Jelinek + + PR fortran/85313 + * gfortran.dg/gomp/pr85313.f90: New test. + 2018-04-07 Jakub Jelinek PR tree-optimization/85257 diff --git a/gcc/testsuite/gfortran.dg/gomp/pr85313.f90 b/gcc/testsuite/gfortran.dg/gomp/pr85313.f90 new file mode 100644 index 000000000000..04599849ed71 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/pr85313.f90 @@ -0,0 +1,25 @@ +! PR fortran/85313 +! { dg-do compile } + +!$omp do collapse(3) + do i = 1, 10 + do j = i, 20 ! { dg-error "form rectangular iteration space" } + do k = 1, 2 + end do + end do + end do +!$omp do collapse(3) + do i = 1, 10 + do j = 1, 5 + do k = i, 20 ! { dg-error "form rectangular iteration space" } + end do + end do + end do +!$omp do collapse(3) + do i = 1, 10 + do j = 1, 5 + do k = j, 20 ! { dg-error "form rectangular iteration space" } + end do + end do + end do +end -- 2.47.2