This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gomp4] Additional tests for the default clause


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]