Hi!

On Wed, 29 Mar 2017 00:19:30 +0200, Jakub Jelinek <ja...@redhat.com> wrote:
> On Tue, Mar 28, 2017 at 11:35:35AM +0200, Thomas Schwinge wrote:
> > I noticed that in C++, for a directive like:
> > 
> >     #pragma acc parallel default (hello)
> > 
> > ... we currently print two error messages for the same location:
> > 
> >     [...]:35:30: error: expected 'none' before 'hello'
> >     [...]:35:30: error: expected ')' before 'hello'
> > 
> > I think it should be enough to just print the first syntax error (which
> > is what we do for C).  I also generally beefed up testing of the OpenACC
> > default clause in C, C++, Fortran.  OK for trunk [...]?

> >     OpenACC default clause maintenance
> >     
> >             gcc/cp/
> >             * parser.c (cp_parser_omp_clause_default): Avoid printing more
> >             than one syntax error message.
> >             gcc/testsuite/
> >             * c-c++-common/goacc/data-default-1.c: Remove file.
> >             * c-c++-common/goacc/default-1.c: New file.
> >             * c-c++-common/goacc/default-2.c: Likewise.
> >             * c-c++-common/goacc/default-3.c: Likewise.
> >             * c-c++-common/goacc/default-4.c: Likewise.
> >             * gfortran.dg/goacc/default.f95: Remove file.
> >             * gfortran.dg/goacc/default-1.f95: New file.
> >             * gfortran.dg/goacc/default-2.f: Likewise.
> >             * gfortran.dg/goacc/default-3.f95: Likewise.
> >             * gfortran.dg/goacc/default-4.f: Likewise.
> 
> The parser.c change is fine for stage1

Thanks!

> but I wonder why are you removing
> the tests.  If you want to rename them and perhaps update, state so in the
> ChangeLog and svn mv them, but the removals + addition without any link looks
> weird.

I'm certainly not removing tests, or reducing test coverage; quite to the
contrary.  I edited the ChangeLog snippet.

Without other changes, committed to trunk in r248278:

commit 23e84ab684d7df69b89debea4cf1cccef5e12951
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri May 19 13:32:19 2017 +0000

    OpenACC default clause maintenance
    
            gcc/cp/
            * parser.c (cp_parser_omp_clause_default): Avoid printing more
            than one syntax error message.
            gcc/testsuite/
            * c-c++-common/goacc/default-1.c: New file.
            * c-c++-common/goacc/default-2.c: Likewise.
            * c-c++-common/goacc/data-default-1.c: Remove file, including its
            test cases in...
            * c-c++-common/goacc/default-3.c: ... this new file, and...
            * c-c++-common/goacc/default-4.c: ... this new file.
            * gfortran.dg/goacc/default.f95: Remove file, including its test
            cases in...
            * gfortran.dg/goacc/default-1.f95: ... this new file, and...
            * gfortran.dg/goacc/default-2.f: ... this new file.
            * gfortran.dg/goacc/default-3.f95: New file.
            * gfortran.dg/goacc/default-4.f: Likewise.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248278 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/cp/ChangeLog                                  |  5 ++
 gcc/cp/parser.c                                   |  3 +-
 gcc/testsuite/ChangeLog                           | 15 ++++++
 gcc/testsuite/c-c++-common/goacc/data-default-1.c | 37 --------------
 gcc/testsuite/c-c++-common/goacc/default-1.c      |  9 ++++
 gcc/testsuite/c-c++-common/goacc/default-2.c      | 59 ++++++++++++++++++++++
 gcc/testsuite/c-c++-common/goacc/default-3.c      | 18 +++++++
 gcc/testsuite/c-c++-common/goacc/default-4.c      | 45 +++++++++++++++++
 gcc/testsuite/gfortran.dg/goacc/default-1.f95     | 10 ++++
 gcc/testsuite/gfortran.dg/goacc/default-2.f       | 60 +++++++++++++++++++++++
 gcc/testsuite/gfortran.dg/goacc/default-3.f95     | 18 +++++++
 gcc/testsuite/gfortran.dg/goacc/default-4.f       | 39 +++++++++++++++
 gcc/testsuite/gfortran.dg/goacc/default.f95       | 17 -------
 13 files changed, 280 insertions(+), 55 deletions(-)

diff --git gcc/cp/ChangeLog gcc/cp/ChangeLog
index 09c8269..c89f719 100644
--- gcc/cp/ChangeLog
+++ gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2017-05-19  Thomas Schwinge  <tho...@codesourcery.com>
+
+       * parser.c (cp_parser_omp_clause_default): Avoid printing more
+       than one syntax error message.
+
 2017-05-19  Nathan Sidwell  <nat...@acm.org>
 
        * class.c (class_dump_id): Define.
diff --git gcc/cp/parser.c gcc/cp/parser.c
index 7a87a5e..6453397 100644
--- gcc/cp/parser.c
+++ gcc/cp/parser.c
@@ -31504,7 +31504,8 @@ cp_parser_omp_clause_default (cp_parser *parser, tree 
list,
        cp_parser_error (parser, "expected %<none%> or %<shared%>");
     }
 
-  if (!cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN))
+  if (kind == OMP_CLAUSE_DEFAULT_UNSPECIFIED
+      || !cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN))
     cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
                                           /*or_comma=*/false,
                                           /*consume_paren=*/true);
diff --git gcc/testsuite/ChangeLog gcc/testsuite/ChangeLog
index 5f0fe80..ca901c2 100644
--- gcc/testsuite/ChangeLog
+++ gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2017-05-19  Thomas Schwinge  <tho...@codesourcery.com>
+
+       * c-c++-common/goacc/default-1.c: New file.
+       * c-c++-common/goacc/default-2.c: Likewise.
+       * c-c++-common/goacc/data-default-1.c: Remove file, including its
+       test cases in...
+       * c-c++-common/goacc/default-3.c: ... this new file, and...
+       * c-c++-common/goacc/default-4.c: ... this new file.
+       * gfortran.dg/goacc/default.f95: Remove file, including its test
+       cases in...
+       * gfortran.dg/goacc/default-1.f95: ... this new file, and...
+       * gfortran.dg/goacc/default-2.f: ... this new file.
+       * gfortran.dg/goacc/default-3.f95: New file.
+       * gfortran.dg/goacc/default-4.f: Likewise.
+
 2017-05-19  Nathan Sidwell  <nat...@acm.org>
 
        * g++.dg/inherit/covariant7.C: Adjust.
diff --git gcc/testsuite/c-c++-common/goacc/data-default-1.c 
gcc/testsuite/c-c++-common/goacc/data-default-1.c
deleted file mode 100644
index ec53cbe..0000000
--- gcc/testsuite/c-c++-common/goacc/data-default-1.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* { dg-do compile } */
-
-
-int main ()
-{
-  int n = 2;
-  int ary[2];
-  
-#pragma acc parallel default (none) /* { dg-message "'parallel' construct" "2" 
} */
-  {
-    ary[0] /* { dg-error "not specified in enclosing" } */
-      = n; /* { dg-error "not specified in enclosing" } */
-  }
-
-#pragma acc kernels default (none) /* { dg-message "'kernels' construct" "2" } 
*/
-  {
-    ary[0] /* { dg-error "not specified in enclosing" } */
-      = n; /* { dg-error "not specified in enclosing" } */
-  }
-
-#pragma acc data copy (ary, n)
-  {
-#pragma acc parallel default (none)
-    {
-      ary[0]
-       = n;
-    }
-
-#pragma acc kernels default (none)
-    {
-      ary[0]
-       = n;
-    }
-  }
-
-  return 0;
-}
diff --git gcc/testsuite/c-c++-common/goacc/default-1.c 
gcc/testsuite/c-c++-common/goacc/default-1.c
new file mode 100644
index 0000000..4d31dbc
--- /dev/null
+++ gcc/testsuite/c-c++-common/goacc/default-1.c
@@ -0,0 +1,9 @@
+/* OpenACC default clause: valid syntax.  */
+
+void f1 ()
+{
+#pragma acc kernels default (none)
+  ;
+#pragma acc parallel default (none)
+  ;
+}
diff --git gcc/testsuite/c-c++-common/goacc/default-2.c 
gcc/testsuite/c-c++-common/goacc/default-2.c
new file mode 100644
index 0000000..d6b6cdc
--- /dev/null
+++ gcc/testsuite/c-c++-common/goacc/default-2.c
@@ -0,0 +1,59 @@
+/* OpenACC default clause: invalid syntax.  */
+
+void f1 ()
+{
+#pragma acc kernels default /* { dg-error "expected .\\(. before end of line" 
} */
+  ;
+#pragma acc parallel default /* { dg-error "expected .\\(. before end of line" 
} */
+  ;
+
+#pragma acc kernels default ( /* { dg-error "expected .none. before end of 
line" } */
+  ;
+#pragma acc parallel default ( /* { dg-error "expected .none. before end of 
line" } */
+  ;
+
+#pragma acc kernels default (, /* { dg-error "expected .none. before .,. 
token" } */
+  ;
+#pragma acc parallel default (, /* { dg-error "expected .none. before .,. 
token" } */
+  ;
+
+#pragma acc kernels default () /* { dg-error "expected .none. before .\\). 
token" } */
+  ;
+#pragma acc parallel default () /* { dg-error "expected .none. before .\\). 
token" } */
+  ;
+
+#pragma acc kernels default (,) /* { dg-error "expected .none. before .,. 
token" } */
+  ;
+#pragma acc parallel default (,) /* { dg-error "expected .none. before .,. 
token" } */
+  ;
+
+#pragma acc kernels default (firstprivate) /* { dg-error "expected .none. 
before .firstprivate." } */
+  ;
+#pragma acc parallel default (firstprivate) /* { dg-error "expected .none. 
before .firstprivate." } */
+  ;
+
+#pragma acc kernels default (private) /* { dg-error "expected .none. before 
.private." } */
+  ;
+#pragma acc parallel default (private) /* { dg-error "expected .none. before 
.private." } */
+  ;
+
+#pragma acc kernels default (shared) /* { dg-error "expected .none. before 
.shared." } */
+  ;
+#pragma acc parallel default (shared) /* { dg-error "expected .none. before 
.shared." } */
+  ;
+
+#pragma acc kernels default (none /* { dg-error "expected .\\). before end of 
line" } */
+  ;
+#pragma acc parallel default (none /* { dg-error "expected .\\). before end of 
line" } */
+  ;
+
+#pragma acc kernels default (none none) /* { dg-error "expected .\\). before 
.none." } */
+  ;
+#pragma acc parallel default (none none) /* { dg-error "expected .\\). before 
.none." } */
+  ;
+
+#pragma acc kernels default (none, none) /* { dg-error "expected .\\). before 
.,. token" } */
+  ;
+#pragma acc parallel default (none, none) /* { dg-error "expected .\\). before 
.,. token" } */
+  ;
+}
diff --git gcc/testsuite/c-c++-common/goacc/default-3.c 
gcc/testsuite/c-c++-common/goacc/default-3.c
new file mode 100644
index 0000000..ac169a9
--- /dev/null
+++ gcc/testsuite/c-c++-common/goacc/default-3.c
@@ -0,0 +1,18 @@
+/* OpenACC default (none) clause.  */
+
+void f1 ()
+{
+  int f1_a = 2;
+  float f1_b[2];
+  
+#pragma acc kernels default (none) /* { dg-message "enclosing OpenACC 
.kernels. construct" } */
+  {
+    f1_b[0] /* { dg-error ".f1_b. not specified in enclosing OpenACC .kernels. 
construct" } */
+      = f1_a; /* { dg-error ".f1_a. not specified in enclosing OpenACC 
.kernels. construct" } */
+  }
+#pragma acc parallel default (none) /* { dg-message "enclosing OpenACC 
.parallel. construct" } */
+  {
+    f1_b[0] /* { dg-error ".f1_b. not specified in enclosing OpenACC 
.parallel. construct" } */
+      = f1_a; /* { dg-error ".f1_a. not specified in enclosing OpenACC 
.parallel. construct" } */
+  }
+}
diff --git gcc/testsuite/c-c++-common/goacc/default-4.c 
gcc/testsuite/c-c++-common/goacc/default-4.c
new file mode 100644
index 0000000..787b352
--- /dev/null
+++ gcc/testsuite/c-c++-common/goacc/default-4.c
@@ -0,0 +1,45 @@
+/* OpenACC default clause inside data construct.  */
+
+/* { dg-additional-options "-fdump-tree-gimple" } */
+
+void f1 ()
+{
+  int f1_a = 2;
+  float f1_b[2];
+
+#pragma acc data copyin (f1_a) copyout (f1_b)
+  /* { dg-final { scan-tree-dump-times "omp target oacc_data 
map\\(force_from:f1_b \[^\\)\]+\\) map\\(force_to:f1_a" 1 "gimple" } } */
+  {
+#pragma acc kernels
+    /* { dg-final { scan-tree-dump-times "omp target oacc_kernels 
map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } */
+    {
+      f1_b[0] = f1_a;
+    }
+#pragma acc parallel
+    /* { dg-final { scan-tree-dump-times "omp target oacc_parallel 
map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } } */
+    {
+      f1_b[0] = f1_a;
+    }
+  }
+}
+
+void f2 ()
+{
+  int f2_a = 2;
+  float f2_b[2];
+
+#pragma acc data copyin (f2_a) copyout (f2_b)
+  /* { dg-final { scan-tree-dump-times "omp target oacc_data 
map\\(force_from:f2_b \[^\\)\]+\\) map\\(force_to:f2_a" 1 "gimple" } } */
+  {
+#pragma acc kernels default (none)
+    /* { dg-final { scan-tree-dump-times "omp target oacc_kernels 
default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" 
} } */
+    {
+      f2_b[0] = f2_a;
+    }
+#pragma acc parallel default (none)
+    /* { dg-final { scan-tree-dump-times "omp target oacc_parallel 
default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" 
} } */
+    {
+      f2_b[0] = f2_a;
+    }
+  }
+}
diff --git gcc/testsuite/gfortran.dg/goacc/default-1.f95 
gcc/testsuite/gfortran.dg/goacc/default-1.f95
new file mode 100644
index 0000000..a79b444
--- /dev/null
+++ gcc/testsuite/gfortran.dg/goacc/default-1.f95
@@ -0,0 +1,10 @@
+! OpenACC default clause: valid syntax.
+
+subroutine f1
+  implicit none
+
+  !$acc kernels default (none)
+  !$acc end kernels
+  !$acc parallel default (none)
+  !$acc end parallel
+end subroutine f1
diff --git gcc/testsuite/gfortran.dg/goacc/default-2.f 
gcc/testsuite/gfortran.dg/goacc/default-2.f
new file mode 100644
index 0000000..8f88688
--- /dev/null
+++ gcc/testsuite/gfortran.dg/goacc/default-2.f
@@ -0,0 +1,60 @@
+! OpenACC default clause: invalid syntax.
+
+      SUBROUTINE F1
+      IMPLICIT NONE
+
+!$ACC KERNELS DEFAULT ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC directive" 
}
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+
+!$ACC KERNELS DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END KERNELS ! { dg-error "Unexpected" }
+!$ACC PARALLEL DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC 
directive" }
+!$ACC END PARALLEL ! { dg-error "Unexpected" }
+      END SUBROUTINE F1
diff --git gcc/testsuite/gfortran.dg/goacc/default-3.f95 
gcc/testsuite/gfortran.dg/goacc/default-3.f95
new file mode 100644
index 0000000..98ed342
--- /dev/null
+++ gcc/testsuite/gfortran.dg/goacc/default-3.f95
@@ -0,0 +1,18 @@
+! OpenACC default (none) clause.
+
+subroutine f1
+  implicit none
+  integer :: f1_a = 2
+  real, dimension (2) :: f1_b
+
+  !$acc kernels default (none) ! { dg-message "enclosing OpenACC .kernels. 
construct" }
+  f1_b(1) & ! { dg-error ".f1_b. not specified in enclosing OpenACC .kernels. 
construct" "" { xfail *-*-* } }
+       = f1_a; ! { dg-error ".f1_a. not specified in enclosing OpenACC 
.kernels. construct" }
+  ! { dg-bogus ".f1_b. not specified in enclosing OpenACC .kernels. construct" 
"" { xfail *-*-* } .-1 }
+  !$acc end kernels
+  !$acc parallel default (none) ! { dg-message "enclosing OpenACC .parallel. 
construct" }
+  f1_b(1) & ! { dg-error ".f1_b. not specified in enclosing OpenACC .parallel. 
construct" "" { xfail *-*-* } }
+       = f1_a; ! { dg-error ".f1_a. not specified in enclosing OpenACC 
.parallel. construct" }
+  ! { dg-bogus ".f1_b. not specified in enclosing OpenACC .parallel. 
construct" "" { xfail *-*-* } .-1 }
+  !$acc end parallel
+end subroutine f1
diff --git gcc/testsuite/gfortran.dg/goacc/default-4.f 
gcc/testsuite/gfortran.dg/goacc/default-4.f
new file mode 100644
index 0000000..b2f73c3
--- /dev/null
+++ gcc/testsuite/gfortran.dg/goacc/default-4.f
@@ -0,0 +1,39 @@
+! OpenACC default clause inside data construct.
+
+! { dg-additional-options "-fdump-tree-gimple" } 
+
+      SUBROUTINE F1
+      IMPLICIT NONE
+      INTEGER :: F1_A = 2
+      REAL, DIMENSION (2) :: F1_B
+
+!$ACC DATA COPYIN (F1_A) COPYOUT (F1_B)
+! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(force_to:f1_a 
\[^\\)\]+\\) map\\(force_from:f1_b" 1 "gimple" } }
+!$ACC KERNELS
+! { dg-final { scan-tree-dump-times "omp target oacc_kernels map\\(tofrom:f1_b 
\[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } }
+      F1_B(1) = F1_A;
+!$ACC END KERNELS
+!$ACC PARALLEL
+! { dg-final { scan-tree-dump-times "omp target oacc_parallel 
map\\(tofrom:f1_b \[^\\)\]+\\) map\\(tofrom:f1_a" 1 "gimple" } }
+      F1_B(1) = F1_A;
+!$ACC END PARALLEL
+!$ACC END DATA
+      END SUBROUTINE F1
+
+      SUBROUTINE F2
+      IMPLICIT NONE
+      INTEGER :: F2_A = 2
+      REAL, DIMENSION (2) :: F2_B
+
+!$ACC DATA COPYIN (F2_A) COPYOUT (F2_B)
+! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(force_to:f2_a 
\[^\\)\]+\\) map\\(force_from:f2_b" 1 "gimple" } }
+!$ACC KERNELS DEFAULT (NONE)
+! { dg-final { scan-tree-dump-times "omp target oacc_kernels default\\(none\\) 
map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" } }
+      F2_B(1) = F2_A;
+!$ACC END KERNELS
+!$ACC PARALLEL DEFAULT (NONE)
+! { dg-final { scan-tree-dump-times "omp target oacc_parallel 
default\\(none\\) map\\(tofrom:f2_b \[^\\)\]+\\) map\\(tofrom:f2_a" 1 "gimple" 
} }
+      F2_B(1) = F2_A;
+!$ACC END PARALLEL
+!$ACC END DATA
+      END SUBROUTINE F2
diff --git gcc/testsuite/gfortran.dg/goacc/default.f95 
gcc/testsuite/gfortran.dg/goacc/default.f95
deleted file mode 100644
index c1fc52e..0000000
--- gcc/testsuite/gfortran.dg/goacc/default.f95
+++ /dev/null
@@ -1,17 +0,0 @@
-! { dg-do compile }
-
-program tile
-  integer i, j, a
-
-  !$acc parallel default (shared) ! { dg-error "Unclassifiable OpenACC 
directive" }
-  !$acc end parallel ! { dg-error "Unexpected" }
-
-  !$acc parallel default (private) ! { dg-error "Unclassifiable OpenACC 
directive" }
-  !$acc end parallel ! { dg-error "Unexpected" }
-
-  !$acc parallel default (none)
-  !$acc end parallel
-
-  !$acc parallel default (firstprivate) ! { dg-error "Unclassifiable OpenACC 
directive" }
-  !$acc end parallel ! { dg-error "Unexpected" }
-end program tile


Grüße
 Thomas

Reply via email to