]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Backport Fortran OMG/ACC diagnositic patch
authorTobias Burnus <tobias@codesourcery.com>
Wed, 2 Oct 2019 12:55:22 +0000 (14:55 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Tue, 3 Mar 2020 11:51:25 +0000 (12:51 +0100)
2019-10-02  Tobias Burnus  <tobias@codesourcery.com>

        Backported from mainline
        2019-10-02  Tobias Burnus  <tobias@codesourcery.com>

        * openmp.c (gfc_match_omp_clauses): Show a clause-parsing
        error if none was rised before.
        * parse.c (matcha, matcho): If error occurred after
        OpenMP/OpenACC directive matched, do not try other directives.

2019-10-02  Tobias Burnus  <tobias@codesourcery.com>

        Backported from mainline
        2019-10-02  Tobias Burnus  <tobias@codesourcery.com>

        * gfortran.dg/goacc/asyncwait-1.f95: Handle new error message.
        * gfortran.dg/goacc/asyncwait-2.f95: Likewise.
        * gfortran.dg/goacc/asyncwait-3.f95: Likewise.
        * gfortran.dg/goacc/asyncwait-4.f95: Likewise.
        * gfortran.dg/goacc/default-2.f: Likewise.
        * gfortran.dg/goacc/enter-exit-data.f95: Likewise.
        * gfortran.dg/goacc/if.f95: Likewise.
        * gfortran.dg/goacc/list.f95: Likewise.
        * gfortran.dg/goacc/literal.f95: Likewise.
        * gfortran.dg/goacc/loop-2-kernels-tile.f95: Likewise.
        * gfortran.dg/goacc/loop-2-parallel-tile.f95: Likewise.
        * gfortran.dg/goacc/loop-7.f95: Likewise.
        * gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
        * gfortran.dg/goacc/routine-6.f90: Likewise.
        * gfortran.dg/goacc/several-directives.f95: Likewise.
        * gfortran.dg/goacc/sie.f95: Likewise.
        * gfortran.dg/goacc/tile-1.f90: Likewise.
        * gfortran.dg/goacc/update-if_present-2.f90: Likewise.
        * gfortran.dg/gomp/declare-simd-1.f90: Likewise.
        * gfortran.dg/gomp/pr29759.f90: Likewise.

(cherry picked from openacc-gcc-9-branch commit
32568a014c678e09a251dd3c5f64618779f036f5)

24 files changed:
gcc/fortran/ChangeLog.omp
gcc/fortran/openmp.c
gcc/fortran/parse.c
gcc/testsuite/ChangeLog.omp
gcc/testsuite/gfortran.dg/goacc/asyncwait-1.f95
gcc/testsuite/gfortran.dg/goacc/asyncwait-2.f95
gcc/testsuite/gfortran.dg/goacc/asyncwait-3.f95
gcc/testsuite/gfortran.dg/goacc/asyncwait-4.f95
gcc/testsuite/gfortran.dg/goacc/default-2.f
gcc/testsuite/gfortran.dg/goacc/enter-exit-data.f95
gcc/testsuite/gfortran.dg/goacc/if.f95
gcc/testsuite/gfortran.dg/goacc/list.f95
gcc/testsuite/gfortran.dg/goacc/literal.f95
gcc/testsuite/gfortran.dg/goacc/loop-2-kernels-tile.f95
gcc/testsuite/gfortran.dg/goacc/loop-2-parallel-tile.f95
gcc/testsuite/gfortran.dg/goacc/loop-7.f95
gcc/testsuite/gfortran.dg/goacc/parallel-kernels-clauses.f95
gcc/testsuite/gfortran.dg/goacc/routine-6.f90
gcc/testsuite/gfortran.dg/goacc/several-directives.f95
gcc/testsuite/gfortran.dg/goacc/sie.f95
gcc/testsuite/gfortran.dg/goacc/tile-1.f90
gcc/testsuite/gfortran.dg/goacc/update-if_present-2.f90
gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90
gcc/testsuite/gfortran.dg/gomp/pr29759.f90

index 87766c9c2a6b1374671ae6acdcfc374ff31a93c7..6882429ff2a0159165baab4c2e785a3965f6029b 100644 (file)
@@ -1,3 +1,13 @@
+2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from mainline
+       2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
+
+       * openmp.c (gfc_match_omp_clauses): Show a clause-parsing
+       error if none was rised before.
+       * parse.c (matcha, matcho): If error occurred after
+       OpenMP/OpenACC directive matched, do not try other directives.
+
 2019-09-20  Tobias Burnus  <tobias@codesourcery.com>
 
        Backported from mainline
index f8b4cb0aab163567139f8a04c6ce7356df9bd7a8..b4ab752943d2b9595a3066d9fdd7ef61c23f94a6 100644 (file)
@@ -1973,6 +1973,8 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask,
 
   if (gfc_match_omp_eos () != MATCH_YES)
     {
+      if (!gfc_error_flag_test ())
+       gfc_error ("Failed to match clause at %C");
       gfc_free_omp_clauses (c);
       return MATCH_ERROR;
     }
index 2f1c2c8517bcff348501430e62991b1927d0a952..4f22542e9a74483365ca2ffcc265f1f3df3f0c50 100644 (file)
@@ -607,13 +607,18 @@ decode_statement (void)
 
 /* Like match and if spec_only, goto do_spec_only without actually
    matching.  */
+/* If the directive matched but the clauses failed, do not start
+   matching the next directive in the same switch statement. */
 #define matcha(keyword, subr, st)                              \
     do {                                                       \
+      match m2;                                                        \
       if (spec_only && gfc_match (keyword) == MATCH_YES)       \
        goto do_spec_only;                                      \
-      else if (match_word (keyword, subr, &old_locus)          \
+      else if ((m2 = match_word (keyword, subr, &old_locus))   \
               == MATCH_YES)                                    \
        return st;                                              \
+      else if (m2 == MATCH_ERROR)                              \
+       goto error_handling;                                    \
       else                                                     \
        undo_new_statement ();                                  \
     } while (0)
@@ -713,6 +718,7 @@ decode_oacc_directive (void)
   /* Directive not found or stored an error message.
      Check and give up.  */
 
+ error_handling:
   if (gfc_error_check () == 0)
     gfc_error_now ("Unclassifiable OpenACC directive at %C");
 
@@ -748,18 +754,23 @@ decode_oacc_directive (void)
 
 /* Like match, but don't match anything if not -fopenmp
    and if spec_only, goto do_spec_only without actually matching.  */
+/* If the directive matched but the clauses failed, do not start
+   matching the next directive in the same switch statement. */
 #define matcho(keyword, subr, st)                              \
     do {                                                       \
+      match m2;                                                        \
       if (!flag_openmp)                                                \
        ;                                                       \
       else if (spec_only && gfc_match (keyword) == MATCH_YES)  \
        goto do_spec_only;                                      \
-      else if (match_word (keyword, subr, &old_locus)          \
+      else if ((m2 = match_word (keyword, subr, &old_locus))   \
               == MATCH_YES)                                    \
        {                                                       \
          ret = st;                                             \
          goto finish;                                          \
        }                                                       \
+      else if (m2 == MATCH_ERROR)                              \
+       goto error_handling;                                    \
       else                                                     \
        undo_new_statement ();                                  \
     } while (0)
@@ -1032,6 +1043,7 @@ decode_omp_directive (void)
      not -fopenmp and simd_matched is false, i.e. if a directive other
      than one marked with match has been seen.  */
 
+ error_handling:
   if (flag_openmp || simd_matched)
     {
       if (!gfc_error_check ())
index 8282d962fc90cec3848b9beb916cca7fffe93a68..a58d8af752e35a733e24fefe82fc74dd7eafdbab 100644 (file)
@@ -1,3 +1,29 @@
+2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from mainline
+       2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.dg/goacc/asyncwait-1.f95: Handle new error message.
+       * gfortran.dg/goacc/asyncwait-2.f95: Likewise.
+       * gfortran.dg/goacc/asyncwait-3.f95: Likewise.
+       * gfortran.dg/goacc/asyncwait-4.f95: Likewise.
+       * gfortran.dg/goacc/default-2.f: Likewise.
+       * gfortran.dg/goacc/enter-exit-data.f95: Likewise.
+       * gfortran.dg/goacc/if.f95: Likewise.
+       * gfortran.dg/goacc/list.f95: Likewise.
+       * gfortran.dg/goacc/literal.f95: Likewise.
+       * gfortran.dg/goacc/loop-2-kernels-tile.f95: Likewise.
+       * gfortran.dg/goacc/loop-2-parallel-tile.f95: Likewise.
+       * gfortran.dg/goacc/loop-7.f95: Likewise.
+       * gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
+       * gfortran.dg/goacc/routine-6.f90: Likewise.
+       * gfortran.dg/goacc/several-directives.f95: Likewise.
+       * gfortran.dg/goacc/sie.f95: Likewise.
+       * gfortran.dg/goacc/tile-1.f90: Likewise.
+       * gfortran.dg/goacc/update-if_present-2.f90: Likewise.
+       * gfortran.dg/gomp/declare-simd-1.f90: Likewise.
+       * gfortran.dg/gomp/pr29759.f90: Likewise.
+
 2019-09-20  Tobias Burnus  <tobias@codesourcery.com>
 
        Backported from mainline
index d630d388ef74f783678f58602f6d9287e0ad1394..c8a72fabadd9b281f227b8b5a0313220408721af 100644 (file)
@@ -11,13 +11,13 @@ program asyncwait
   a(:) = 3.0
   b(:) = 0.0
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 2) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 2) ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,) ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
@@ -29,25 +29,25 @@ program asyncwait
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,) ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2 3) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2 3) ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,,) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,,) ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1  ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1  ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
index fe4e4eeed2c65c10fd0eaf7dc4d7eb6df5bac545..3663c9b2ffc7c0e1ea22dc41e54989f21bc9d827 100644 (file)
@@ -83,13 +83,13 @@ program asyncwait
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) waitasync ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) waitasync ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
   !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
 
-  !$acc parallel copyin (a(1:N)) copy (b(1:N)) asyncwait ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel copyin (a(1:N)) copy (b(1:N)) asyncwait ! { dg-error "Failed to match clause" }
   do i = 1, N
      b(i) = a(i)
   end do
index 5c55c36e0acc9bc9e8ba17f912fe4e3b856140f5..815928a1bb75a28dfdd3466f405b4ebc5f2a028c 100644 (file)
@@ -33,9 +33,9 @@ program asyncwait
 
   !$acc wait (1.0) ! { dg-error "WAIT clause at \\\(1\\\) requires a scalar INTEGER expression" }
 
-  !$acc wait 1 ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait 1 ! { dg-error "Failed to match clause" }
 
-  !$acc wait N ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait N ! { dg-error "Failed to match clause" }
 
   !$acc wait (1)
 end program asyncwait
index df311545c52f7137741c62152a7b2dddb38cce65..057d06bbe78f81b3147216922f98facb7b7d5cdb 100644 (file)
@@ -11,21 +11,21 @@ program asyncwait
   a(:) = 3.0
   b(:) = 0.0
 
-  !$acc wait async (1 2) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1 2) ! { dg-error "Failed to match clause" }
 
-  !$acc wait async (1,) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1,) ! { dg-error "Failed to match clause" }
 
   !$acc wait async (,1) ! { dg-error "Invalid character in name" }
 
-  !$acc wait async (1, 2, ) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1, 2, ) ! { dg-error "Failed to match clause" }
 
-  !$acc wait async (1, 2, ,) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1, 2, ,) ! { dg-error "Failed to match clause" }
 
-  !$acc wait async (1 ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1 ! { dg-error "Failed to match clause" }
 
-  !$acc wait async (1, *) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1, *) ! { dg-error "Failed to match clause" }
 
-  !$acc wait async (1, a) ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async (1, a) ! { dg-error "Failed to match clause" }
 
   !$acc wait async (a) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" }
 
@@ -33,9 +33,9 @@ program asyncwait
 
   !$acc wait async (1.0) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" }
 
-  !$acc wait async 1 ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait async 1 ! { dg-error "Failed to match clause" }
 
-  !$acc waitasync ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc waitasync ! { dg-error "Failed to match clause" }
 
-  !$acc wait,async ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc wait,async ! { dg-error "Failed to match clause" }
 end program asyncwait
index 8f886887f4b2ef7b3af87bf00904ac0698acf801..ea82388eae93c341c4631a391784a1a4a83c0532 100644 (file)
@@ -3,58 +3,58 @@
       SUBROUTINE F1
       IMPLICIT NONE
 
-!$ACC KERNELS DEFAULT ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT ( ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT ( ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (, ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (, ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT () ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT () ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (,) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (,) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (FIRSTPRIVATE) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (FIRSTPRIVATE) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (PRIVATE) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (PRIVATE) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (SHARED) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (SHARED) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (NONE ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (NONE ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (NONE NONE) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (NONE NONE) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
 
-!$ACC KERNELS DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC KERNELS DEFAULT (NONE, NONE) ! { dg-error "Failed to match clause" }
 !$ACC END KERNELS ! { dg-error "Unexpected" }
-!$ACC PARALLEL DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC PARALLEL DEFAULT (NONE, NONE) ! { dg-error "Failed to match clause" }
 !$ACC END PARALLEL ! { dg-error "Unexpected" }
       END SUBROUTINE F1
index b616b398a1411dcc7c1c60b8c3fbd0489088570a..c2a497963181822d476c91830807a2ae2d9c62be 100644 (file)
@@ -28,7 +28,7 @@ contains
   !$acc enter data
   !$acc enter data if (.false.)
   !$acc enter data if (l)
-  !$acc enter data if (.false.) if (l) ! { dg-error "Unclassifiable" }
+  !$acc enter data if (.false.) if (l) ! { dg-error "Failed to match clause" }
   !$acc enter data if (i) ! { dg-error "LOGICAL" }
   !$acc enter data if (1) ! { dg-error "LOGICAL" }
   !$acc enter data if (a) ! { dg-error "LOGICAL" }
@@ -63,7 +63,7 @@ contains
   !$acc exit data
   !$acc exit data if (.false.)
   !$acc exit data if (l)
-  !$acc exit data if (.false.) if (l) ! { dg-error "Unclassifiable" }
+  !$acc exit data if (.false.) if (l) ! { dg-error "Failed to match clause" }
   !$acc exit data if (i) ! { dg-error "LOGICAL" }
   !$acc exit data if (1) ! { dg-error "LOGICAL" }
   !$acc exit data if (a) ! { dg-error "LOGICAL" }
index a45035d823017afcd75fd4517ec85e008a04e109..35e9cfee1347f18b66b2134af99c909f86e4171a 100644 (file)
@@ -6,7 +6,7 @@ program test
   logical :: x
   integer :: i
 
-  !$acc parallel if ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel if ! { dg-error "Failed to match clause" }
   !$acc parallel if () ! { dg-error "Invalid character" }
   !$acc parallel if (i) ! { dg-error "scalar LOGICAL expression" }
   !$acc end parallel 
@@ -14,11 +14,11 @@ program test
   !$acc end parallel 
   !$acc kernels if (i) ! { dg-error "scalar LOGICAL expression" }
   !$acc end kernels 
-  !$acc kernels if ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc kernels if ! { dg-error "Failed to match clause" }
   !$acc kernels if () ! { dg-error "Invalid character" }
   !$acc kernels if (1) ! { dg-error "scalar LOGICAL expression" }
   !$acc end kernels
-  !$acc data if ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc data if ! { dg-error "Failed to match clause" }
   !$acc data if () ! { dg-error "Invalid character" }
   !$acc data if (i) ! { dg-error "scalar LOGICAL expression" }
   !$acc end data 
@@ -26,9 +26,9 @@ program test
   !$acc end data 
 
   ! at most one if clause may appear
-  !$acc parallel if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" }
-  !$acc kernels if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" }
-  !$acc data if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel if (.false.) if (.false.) { dg-error "Failed to match clause" }
+  !$acc kernels if (.false.) if (.false.) { dg-error "Failed to match clause" }
+  !$acc data if (.false.) if (.false.) { dg-error "Failed to match clause" }
 
   !$acc parallel if (x)
   !$acc end parallel
@@ -49,4 +49,4 @@ program test
   !$acc data if (i.gt.1)
   !$acc end data
 
-end program test
\ No newline at end of file
+end program test
index 87c84085b1386fd42a9ae2e4b0afa8bac6b75556..d2f4c5e88be2624f99ce1006aad568dd45e595f0 100644 (file)
@@ -24,7 +24,7 @@ program test
   !$acc parallel private (i) private (j)
   !$acc end parallel
 
-  !$acc parallel private ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel private ! { dg-error "Failed to match clause" }
 
   !$acc parallel private() ! { dg-error "Syntax error" }
 
@@ -56,7 +56,7 @@ program test
   !$acc parallel firstprivate (i) firstprivate (j)
   !$acc end parallel
 
-  !$acc parallel firstprivate ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel firstprivate ! { dg-error "Failed to match clause" }
 
   !$acc parallel firstprivate() ! { dg-error "Syntax error" }
 
@@ -91,7 +91,7 @@ program test
   !$acc host_data use_device (i) use_device (j) ! { dg-error "neither a POINTER nor an array" }
   !$acc end host_data
 
-  !$acc host_data use_device ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc host_data use_device ! { dg-error "Failed to match clause" }
 
   !$acc host_data use_device() ! { dg-error "Syntax error" }
 
index e6760d04fa1ba4a7826245acd9b7b314cd376347..896749a46cb88c1b6b84b56270cffb846a9e62df 100644 (file)
@@ -10,7 +10,7 @@ contains
     !$acc end data ! { dg-error "Unexpected" }
     !$acc data deviceptr (10) ! { dg-error "Syntax error" }
     !$acc end data ! { dg-error "Unexpected" }
-    !$acc data private (10) ! { dg-error "Unclassifiable" }
+    !$acc data private (10) ! { dg-error "Failed to match clause" }
     !$acc end data ! { dg-error "Unexpected" }
     !$acc host_data use_device (10) ! { dg-error "Syntax error" }
     !$acc end host_data ! { dg-error "Unexpected" }
index 937cd73f6ee856e0173fbf1473522885fdef6878..65425159a2c906da7399da701e83cd300bc43336 100644 (file)
@@ -3,7 +3,7 @@ program test
   integer :: i, j
 
   !$acc kernels
-    !$acc loop tile ! { dg-error "Unclassifiable" }
+    !$acc loop tile ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop tile() ! { dg-error "Syntax error" }
@@ -65,7 +65,7 @@ program test
     ENDDO
   !$acc end kernels
 
-  !$acc kernels loop tile ! { dg-error "Unclassifiable" }
+  !$acc kernels loop tile ! { dg-error "Failed to match clause" }
   DO i = 1,10
   ENDDO
   !$acc kernels loop tile() ! { dg-error "Syntax error" }
index e942011c600977da291d3aef6a6cd52c3e34f3dc..dae8f6674865c5c3b02ac4f898522e1e7f9e56c3 100644 (file)
@@ -3,7 +3,7 @@ program test
   integer :: i, j
 
   !$acc parallel
-    !$acc loop tile ! { dg-error "Unclassifiable" }
+    !$acc loop tile ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop tile() ! { dg-error "Syntax error" }
@@ -56,7 +56,7 @@ program test
     ENDDO
   !$acc end parallel
 
-  !$acc parallel loop tile ! { dg-error "Unclassifiable" }
+  !$acc parallel loop tile ! { dg-error "Failed to match clause" }
   DO i = 1,10
   ENDDO
   !$acc parallel loop tile() ! { dg-error "Syntax error" }
index 9ca8297d81a776c5825bb551bc5e6fce9373b81a..37d50d3b82bd7e7fb6e049b5303220b8cbcfdbb9 100644 (file)
@@ -30,13 +30,13 @@ program test
     !$acc loop gang(num:num, static:1)
     DO i = 1,10
     ENDDO
-    !$acc loop gang(static:*, num:5, static:5) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop gang(static:*, num:5, static:5) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
-    !$acc loop gang(1, num:2, static:3) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop gang(1, num:2, static:3) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
-    !$acc loop gang(num:num static:1) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop gang(num:num static:1) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop gang(num)
@@ -45,7 +45,7 @@ program test
     !$acc loop gang(num:num+1, static:1+num)
     DO i = 1,10
     ENDDO
-    !$acc loop gang(length:num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop gang(length:num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
 
@@ -58,19 +58,19 @@ program test
     !$acc loop worker (num)
     DO i = 1,10
     ENDDO
-    !$acc loop worker (static:num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop worker (static:num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop worker (num:,) ! { dg-error "Invalid character" }
     DO i = 1,10
     ENDDO
-    !$acc loop worker (num:num:num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop worker (num:num:num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop worker (num:num*num)
     DO i = 1,10
     ENDDO
-    !$acc loop worker (length:num*num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop worker (length:num*num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop worker (num:*) ! { dg-error "Invalid character" }
@@ -89,13 +89,13 @@ program test
     !$acc loop vector (length)
     DO i = 1,10
     ENDDO
-    !$acc loop vrctor (static:num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop vrctor (static:num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop vector (length:,) ! { dg-error "Invalid character" }
     DO i = 1,10
     ENDDO
-    !$acc loop vector (length:num:num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop vector (length:num:num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop vector (length:static*num)
@@ -107,7 +107,7 @@ program test
     !$acc loop vector (length:32)
     DO i = 1,10
     ENDDO
-    !$acc loop vector (num:num*num) ! { dg-error "Unclassifiable OpenACC directive" }
+    !$acc loop vector (num:num*num) ! { dg-error "Failed to match clause" }
     DO i = 1,10
     ENDDO
     !$acc loop vector (length:*) ! { dg-error "Invalid character" }
index c37208c7e6f598b7c25d677af37bc292aa6a6b50..72ba147565b0b57b2aac33cefffe15560b5b159a 100644 (file)
@@ -16,8 +16,8 @@ program test
   !$acc parallel async(i)
   !$acc end parallel
 
-  !$acc kernels async(0, 1) { dg-error "Unclassifiable" }
-  !$acc parallel async(0, 1) { dg-error "Unclassifiable" }
+  !$acc kernels async(0, 1) { dg-error "Failed to match clause" }
+  !$acc parallel async(0, 1) { dg-error "Failed to match clause" }
 
   !$acc kernels async
   !$acc end kernels
@@ -37,11 +37,11 @@ program test
   !$acc kernels async() { dg-error "Invalid character" }
   !$acc parallel async() { dg-error "Invalid character" }
 
-  !$acc kernels async("a") { dg-error "Unclassifiable" }
-  !$acc parallel async("a") { dg-error "Unclassifiable" }
+  !$acc kernels async("a") { dg-error "Failed to match clause" }
+  !$acc parallel async("a") { dg-error "Failed to match clause" }
 
-  !$acc kernels async(.true.) { dg-error "Unclassifiable" }
-  !$acc parallel async(.true.) { dg-error "Unclassifiable" }
+  !$acc kernels async(.true.) { dg-error "Failed to match clause" }
+  !$acc parallel async(.true.) { dg-error "Failed to match clause" }
 
   ! default(none)
   !$acc kernels default(none)
@@ -59,17 +59,17 @@ program test
   !$acc parallel default ( none )
   !$acc end parallel
 
-  !$acc kernels default { dg-error "Unclassifiable" }
-  !$acc parallel default { dg-error "Unclassifiable" }
+  !$acc kernels default { dg-error "Failed to match clause" }
+  !$acc parallel default { dg-error "Failed to match clause" }
 
-  !$acc kernels default() { dg-error "Unclassifiable" }
-  !$acc parallel default() { dg-error "Unclassifiable" }
+  !$acc kernels default() { dg-error "Failed to match clause" }
+  !$acc parallel default() { dg-error "Failed to match clause" }
 
-  !$acc kernels default(i) { dg-error "Unclassifiable" }
-  !$acc parallel default(i) { dg-error "Unclassifiable" }
+  !$acc kernels default(i) { dg-error "Failed to match clause" }
+  !$acc parallel default(i) { dg-error "Failed to match clause" }
 
-  !$acc kernels default(1) { dg-error "Unclassifiable" }
-  !$acc parallel default(1) { dg-error "Unclassifiable" }
+  !$acc kernels default(1) { dg-error "Failed to match clause" }
+  !$acc parallel default(1) { dg-error "Failed to match clause" }
 
   ! Wait
   !$acc kernels wait (l) ! { dg-error "INTEGER" }
index cdf643ff44ce9f3937d3060736e2ff020d1635de..f1e2aa3c3c3a15c862ff53c7eead55eda2229efb 100644 (file)
@@ -108,7 +108,7 @@ subroutine subr4 (x)
 end subroutine subr4
 
 subroutine subr10 (x)
-  !$acc routine (subr10) device ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc routine (subr10) device ! { dg-error "Failed to match clause" }
   integer, intent(inout) :: x
   if (x < 1) then
      x = 1
index 8fb97b53d387e2cc19a67237ccbac3e1c7156984..e7610be69d9c53429ca35090447226d0f479cede 100644 (file)
@@ -2,5 +2,5 @@
 
 program test
   ! only one directive-name may appear in directive
-  !$acc parallel kernels ! { dg-error "Unclassifiable OpenACC directive" }
-end
\ No newline at end of file
+  !$acc parallel kernels ! { dg-error "Failed to match clause" }
+end
index 3abf2c8016f54e29af871812e5dc657e51c948c0..bb942bdb533eb640cd2b6b02ae98ee4143d92616 100644 (file)
@@ -67,7 +67,7 @@ program test
   !$acc end kernels
 
 
-  !$acc parallel num_gangs ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel num_gangs ! { dg-error "Failed to match clause" }
 
   !$acc parallel num_gangs(3)
   !$acc end parallel
@@ -95,7 +95,7 @@ program test
   !$acc parallel num_gangs("1") ! { dg-error "scalar INTEGER expression" }
   !$acc end parallel
 
-  !$acc kernels num_gangs ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc kernels num_gangs ! { dg-error "Failed to match clause" }
 
   !$acc kernels num_gangs(3)
   !$acc end kernels
@@ -124,7 +124,7 @@ program test
   !$acc end kernels
 
 
-  !$acc parallel num_workers ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel num_workers ! { dg-error "Failed to match clause" }
 
   !$acc parallel num_workers(3)
   !$acc end parallel
@@ -152,7 +152,7 @@ program test
   !$acc parallel num_workers("1") ! { dg-error "scalar INTEGER expression" }
   !$acc end parallel
 
-  !$acc kernels num_workers ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc kernels num_workers ! { dg-error "Failed to match clause" }
 
   !$acc kernels num_workers(3)
   !$acc end kernels
@@ -181,7 +181,7 @@ program test
   !$acc end kernels
 
 
-  !$acc parallel vector_length ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel vector_length ! { dg-error "Failed to match clause" }
 
   !$acc parallel vector_length(3)
   !$acc end parallel
@@ -209,7 +209,7 @@ program test
   !$acc parallel vector_length("1") ! { dg-error "scalar INTEGER expression" }
   !$acc end parallel
 
-  !$acc kernels vector_length ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc kernels vector_length ! { dg-error "Failed to match clause" }
 
   !$acc kernels vector_length(3)
   !$acc end kernels
index 17fd32cd28414897db356cda2905dbd0478499a5..9ef752110877d90594db434599f86c7895ff1a7b 100644 (file)
@@ -24,7 +24,7 @@ subroutine parloop
      end do
   end do 
 
-  !$acc parallel loop tile ! { dg-error "Unclassifiable" }
+  !$acc parallel loop tile ! { dg-error "Failed to match clause" }
   do i = 1, n
   end do
 
@@ -92,7 +92,7 @@ subroutine par
   integer i, j, k
 
   !$acc parallel
-  !$acc loop tile ! { dg-error "Unclassifiable" }
+  !$acc loop tile ! { dg-error "Failed to match clause" }
   do i = 1, n
   end do
 
@@ -173,7 +173,7 @@ subroutine kern
   integer i, j, k
 
   !$acc kernels
-  !$acc loop tile  ! { dg-error "Unclassifiable" }
+  !$acc loop tile  ! { dg-error "Failed to match clause" }
   do i = 1, n
   end do
 
@@ -275,7 +275,7 @@ subroutine kernsloop
      end do
   end do 
 
-  !$acc kernels loop tile ! { dg-error "Unclassifiable" }
+  !$acc kernels loop tile ! { dg-error "Failed to match clause" }
   do i = 1, n
   end do
 
index e73c2dc0875428eadda79d3e77772855fa101612..bf8b319a78ee370bc6f743bb59e997942557d896 100644 (file)
@@ -2,7 +2,7 @@
 
 subroutine t1
   implicit none
-  !$acc routine gang if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc routine gang if_present ! { dg-error "Failed to match clause" }
   integer a, b, c(10)
   real, allocatable :: x, y, z(:)
 
@@ -12,10 +12,10 @@ subroutine t1
 
   allocate (x, y, z(100))
 
-  !$acc enter data copyin(a) if_present ! { dg-error "Unclassifiable OpenACC directive" }
-  !$acc exit data copyout(a) if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc enter data copyin(a) if_present ! { dg-error "Failed to match clause" }
+  !$acc exit data copyout(a) if_present ! { dg-error "Failed to match clause" }
 
-  !$acc data copy(a) if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc data copy(a) if_present ! { dg-error "Failed to match clause" }
   !$acc end data ! { dg-error "Unexpected ..ACC END DATA statement" }
 
   !$acc declare link(a) if_present ! { dg-error "Unexpected junk after" }
@@ -23,7 +23,7 @@ subroutine t1
   !$acc init if_present ! { dg-error "Unclassifiable OpenACC directive" }
   !$acc shutdown if_present ! { dg-error "Unclassifiable OpenACC directive" }
   
-  !$acc update self(a) device_type(nvidia) device(b) if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc update self(a) device_type(nvidia) device(b) if_present ! { dg-error "Failed to match clause" }
 end subroutine t1
 
 subroutine t2
@@ -35,17 +35,17 @@ subroutine t2
   c(:) = -1
 
   !$acc parallel
-  !$acc loop if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc loop if_present ! { dg-error "Failed to match clause" }
   do b = 1, 10
   end do
   !$acc end parallel
 
-  !$acc kernels loop if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc kernels loop if_present ! { dg-error "Failed to match clause" }
   do b = 1, 10
   end do
   !$acc end kernels loop ! { dg-error "Unexpected ..ACC END KERNELS LOOP statement" }
 
-  !$acc parallel loop if_present ! { dg-error "Unclassifiable OpenACC directive" }
+  !$acc parallel loop if_present ! { dg-error "Failed to match clause" }
   do b = 1, 10
   end do
   !$acc end parallel loop   ! { dg-error "Unexpected ..ACC END PARALLEL LOOP statement" }
index d6ae7c9c8126e02aa88438087f8a43385f38d7f8..40169d38da4be8ca88027e237712b961a6e5f84f 100644 (file)
@@ -2,7 +2,7 @@
 
 subroutine fn1 (x)
   integer :: x
-!$omp declare simd (fn1) inbranch notinbranch uniform (x) ! { dg-error "Unclassifiable OpenMP directive" }
+!$omp declare simd (fn1) inbranch notinbranch uniform (x) ! { dg-error "Failed to match clause" }
 end subroutine fn1
 subroutine fn2 (x)
 !$omp declare simd (fn100)     ! { dg-error "should refer to containing procedure" }
index 39c59c5e0ffb902a6a4a99c03c75df81c66edf5c..1b1f379522c095eb00bea86cda428d6714d1df25 100644 (file)
@@ -21,20 +21,20 @@ PROGRAM test_omp
 !$OMP END PARALLEL
 
 
-!$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
+!$OMP PARALLEL &               ! { dg-error "Failed to match clause" }
 !$    NUM_THREADS(2)
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
-!$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
+!$OMP PARALLEL &               ! { dg-error "Failed to match clause" }
 !$    & NUM_THREADS(2)         ! { dg-error "Invalid character" }
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
-!$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
+!$OMP PARALLEL &               ! { dg-error "Failed to match clause" }
 !
 !$    NUM_THREADS(2)
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
-!$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
+!$OMP PARALLEL &               ! { dg-error "Failed to match clause" }
 !
 !$    & NUM_THREADS(2)         ! { dg-error "Invalid character" }
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }