new file mode 100644
@@ -0,0 +1,57 @@
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int
+main (int argc, char **argv)
+{
+ float a, b;
+
+ a = 2.0;
+ b = 0.0;
+
+#pragma acc parallel default (shared) /* { dg-error "expected 'none'" } */
+ /* { dg-error "expected '\\\)'" "" { target c++ } 13 } */
+ {
+ b = a;
+ a = 1.0;
+ a = a + b;
+ }
+
+#pragma acc parallel default (none) /* { dg-error "enclosing OpenACC parallel" } */
+ {
+ b = a; /* { dg-error "in enclosing OpenACC parallel construct" } */
+ a = 1.0;
+ a = a + b;
+ }
+
+#pragma acc parallel create (b) default (none) /* { dg-error "enclosing OpenACC parallel" } */
+ {
+ b = a; /* { dg-error "in enclosing OpenACC parallel construct" } */
+ a = 1.0;
+ a = a + b;
+ }
+
+#pragma acc kernels default (none) /* { dg-error "enclosing OpenACC kernels" } */
+ {
+ b = a; /* { dg-error "in enclosing OpenACC kernels construct" } */
+ a = 1.0;
+ a = a + b;
+ }
+
+#pragma acc kernels create (b) default (none) /* { dg-error "enclosing OpenACC kernels construct" } */
+ {
+ b = a; /* { dg-error "in enclosing OpenACC kernels construct" } */
+ a = 1.0;
+ a = a + b;
+ }
+
+#pragma acc kernels copy (a) create (b) default () /* { dg-error "expected 'none'" } */
+ {
+ b = a;
+ a = 1.0;
+ a = a + b;
+ }
+
+ return 0;
+}
new file mode 100644
@@ -0,0 +1,64 @@
+/* { dg-do run } */
+
+#include <stdlib.h>
+
+int
+main (int argc, char **argv)
+{
+ float a, b;
+
+ a = 2.0;
+ b = 0.0;
+
+#pragma acc kernels default (none)
+ {
+ float c, d;
+
+ c = 2.0;
+ d = c;
+ c = 1.0;
+ c = c + d;
+ }
+
+#pragma acc parallel default (none)
+ {
+ float c, d;
+
+ c = 2.0;
+ d = c;
+ c = 1.0;
+ c = c + d;
+ }
+
+#pragma acc parallel copy (a) create (b) default (none)
+ {
+ b = a;
+ a = 1.0;
+ a = a + b;
+ }
+
+ if (a != 3.0)
+ abort ();
+
+#pragma acc kernels copy (a) create (b) default (none)
+ {
+ b = a;
+ a = 1.0;
+ a = a + b;
+ }
+
+ if (a != 4.0)
+ abort ();
+
+#pragma acc parallel default (none) copy (a) create (b)
+ {
+ b = a;
+ a = 1.0;
+ a = a + b;
+ }
+
+ if (a != 5.0)
+ abort ();
+
+ return 0;
+}
new file mode 100644
@@ -0,0 +1,34 @@
+! { dg-do run }
+
+program main
+ implicit none
+ real a, b
+
+ a = 2.0
+ b = 0.0
+
+ !$acc parallel copy (a) create (b) default (none)
+ b = a
+ a = 1.0
+ a = a + b
+ !$acc end parallel
+
+ if (a .ne. 3.0) call abort
+
+ !$acc kernels copy (a) create (b) default (none)
+ b = a
+ a = 1.0
+ a = a + b
+ !$acc end kernels
+
+ if (a .ne. 4.0) call abort
+
+ !$acc parallel default (none) copy (a) create (b)
+ b = a
+ a = 1.0
+ a = a + b
+ !$acc end parallel
+
+ if (a .ne. 5.0) call abort
+
+end program main