]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR fortran/85313 (gcc/fortran/openmp.c: 2 * confused logic ?)
authorJakub Jelinek <jakub@redhat.com>
Fri, 22 Jun 2018 21:09:32 +0000 (23:09 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 22 Jun 2018 21:09:32 +0000 (23:09 +0200)
Backported from mainline
2018-04-10  Jakub Jelinek  <jakub@redhat.com>

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
gcc/fortran/openmp.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gomp/pr85313.f90 [new file with mode: 0644]

index 6541331e05e181d9bd23b871392a5da4d932856b..95d622a7a21b231b9a72c3e6b662e4b7050dd785 100644 (file)
@@ -1,3 +1,12 @@
+2018-06-22  Jakub Jelinek  <jakub@redhat.com>
+
+       Backported from mainline
+       2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <kargl@gcc.gnu.org>
 
        PR fortran/86110
index 746785c88933c729fb82e1dd026b095d166e6744..8f7c622bbedcf556f44859ea253801083f292a4b 100644 (file)
@@ -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;
            }
        }
index b9e935cd3cb4c58c83dcde75f9e74f6843b6df7b..2a1ddd18a27234b6f7dd89e8fcbff1bc9696c70d 100644 (file)
@@ -1,6 +1,11 @@
 2018-06-22  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
+       2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/85313
+       * gfortran.dg/gomp/pr85313.f90: New test.
+
        2018-04-07  Jakub Jelinek  <jakub@redhat.com>
 
        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 (file)
index 0000000..0459984
--- /dev/null
@@ -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