[OpenACC] update fortran nested parallelism error messages
authorCesar Philippidis <cesar@gcc.gnu.org>
Mon, 24 Sep 2018 14:51:25 +0000 (07:51 -0700)
committerCesar Philippidis <cesar@gcc.gnu.org>
Mon, 24 Sep 2018 14:51:25 +0000 (07:51 -0700)
gcc/fortran/
* openmp.c (resolve_oacc_loop_blocks):

gcc/testsuite/
* gfortran.dg/goacc/nested-parallelism.f90: New test.

From-SVN: r264536

gcc/fortran/ChangeLog
gcc/fortran/openmp.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/goacc/nested-parallelism.f90 [new file with mode: 0644]

index 98e1dd645b8a9467c3e529f42e1b0284b23f3206..3901e2961a01304283c41cf81b78b39c71c1a972 100644 (file)
@@ -1,3 +1,8 @@
+2018-09-24  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
+           Cesar Philippidis  <cesar@codesourcery.com>
+
+       * openmp.c (resolve_oacc_loop_blocks):
+
 2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/87397
index 94a7f7eaa5082a74c0e74318944ad0d02915d20c..bd83733580e64f22e5ede34dbeac1447d1297475 100644 (file)
@@ -5853,7 +5853,7 @@ resolve_oacc_loop_blocks (gfc_code *code)
                             &code->loc);
                if (c->code->ext.omp_clauses->vector)
                  gfc_error ("Loop parallelized across gangs is not allowed "
-                            "inside loop parallelized across workers at %L",
+                            "inside loop parallelized across vectors at %L",
                             &code->loc);
              }
            if (code->ext.omp_clauses->worker)
index 16dc1a49412b5732a595816d4fad811b8ebfab81..cf1add78d2bbe6e62dae752a28488c3ed68b285e 100644 (file)
@@ -1,3 +1,7 @@
+2018-09-24  Cesar Philippidis  <cesar@codesourcery.com>
+
+       * gfortran.dg/goacc/nested-parallelism.f90: New test.
+
 2018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>
 
        PR target/80080
diff --git a/gcc/testsuite/gfortran.dg/goacc/nested-parallelism.f90 b/gcc/testsuite/gfortran.dg/goacc/nested-parallelism.f90
new file mode 100644 (file)
index 0000000..6ebef6a
--- /dev/null
@@ -0,0 +1,51 @@
+! Verify the invalid gang, worker, vector parallelism error messages.
+
+program np
+  integer, parameter :: n = 100
+  integer :: i, j, k
+
+  !$acc parallel loop gang
+  do i = 1, n
+     !$acc loop gang ! { dg-error "gangs is not allowed inside another loop parallelized across gangs" }
+     do j = 1, n
+     end do
+
+     !$acc loop worker
+     do j = 1, n
+     end do
+
+     !$acc loop vector
+     do j = 1, n
+     end do     
+  end do
+  
+  !$acc parallel loop worker
+  do i = 1, n
+     !$acc loop gang ! { dg-error "gangs is not allowed inside loop parallelized across workers" }
+     do j = 1, n
+     end do
+
+     !$acc loop worker ! { dg-error "workers is not allowed inside another loop parallelized across workers" }
+     do j = 1, n
+     end do
+
+     !$acc loop vector
+     do j = 1, n
+     end do     
+  end do
+
+  !$acc parallel loop vector
+  do i = 1, n
+     !$acc loop gang ! { dg-error "gangs is not allowed inside loop parallelized across vectors" }
+     do j = 1, n
+     end do
+
+     !$acc loop worker ! { dg-error "workers is not allowed inside another loop parallelized across vectors" }
+     do j = 1, n
+     end do
+
+     !$acc loop vector ! { dg-error "vectors is not allowed inside another loop parallelized across vectors" }
+     do j = 1, n
+     end do     
+  end do
+end program np