This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[gomp4] Additional tests for the default clause
- From: James Norris <jnorris at codesourcery dot com>
- To: <gcc-patches at gcc dot gnu dot org>, <fortran at gcc dot gnu dot org>, Thomas Schwinge <Thomas_Schwinge at mentor dot com>
- Date: Thu, 18 Jun 2015 11:20:54 -0500
- Subject: [gomp4] Additional tests for the default clause
- Authentication-results: sourceware.org; auth=none
Hi!
The attached patch adds additional tests for the
OpenACC default clause.
Committed to gomp-4_0-branch
Jim
diff --git a/gcc/testsuite/c-c++-common/goacc/default-1.c b/gcc/testsuite/c-c++-common/goacc/default-1.c
new file mode 100644
index 0000000..41757f1
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/goacc/default-1.c
@@ -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;
+}
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
new file mode 100644
index 0000000..0d75f49
--- /dev/null
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
@@ -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;
+}
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/default-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/default-1.f90
new file mode 100644
index 0000000..f82316e
--- /dev/null
+++ b/libgomp/testsuite/libgomp.oacc-fortran/default-1.f90
@@ -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