]> 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>
Mon, 25 Jun 2018 17:47:12 +0000 (19:47 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 25 Jun 2018 17:47:12 +0000 (19:47 +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: r262095

gcc/fortran/ChangeLog
gcc/fortran/openmp.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gomp/pr85313.f90 [new file with mode: 0644]

index 3fff776fd9662d272af601b887ce4f0ec810d873..695caeb0c97a5e1b7f46490a7b3fdb5fdeaf8d58 100644 (file)
@@ -1,6 +1,12 @@
 2018-06-25  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.
+
        2017-11-24  Jakub Jelinek  <jakub@redhat.com>
 
        PR fortran/81304
index d5fb45765e3317bc4ee1443df3283e159b8b2b1c..f03fdf9f3be6155d41d972b5393fee083bbed03a 100644 (file)
@@ -4612,8 +4612,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;
            }
        }
@@ -4777,12 +4775,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 db94bdc3fd9b5b7efd930f756d44464bc2b0436d..07ca2480ba5a3de3e9ae805744ef89b1564617d2 100644 (file)
@@ -1,6 +1,11 @@
 2018-06-25  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