re PR c/70688 (bogus OpenACC data clause errors involving reductions)
authorCesar Philippidis <cesar@codesourcery.com>
Wed, 1 Jun 2016 20:37:44 +0000 (13:37 -0700)
committerCesar Philippidis <cesar@gcc.gnu.org>
Wed, 1 Jun 2016 20:37:44 +0000 (13:37 -0700)
PR c/70688
* pr70688.c: New file.

From-SVN: r237011

libgomp/ChangeLog
libgomp/testsuite/libgomp.oacc-c-c++-common/pr70688.c [new file with mode: 0644]

index 9dcdda83b5d6e586c8cf9bc34fbc42d8f0251a8a..eebbb27c5669c7974fd2bfb320d49cf28eb9a07b 100644 (file)
@@ -1,3 +1,8 @@
+2016-06-01  Cesar Philippidis  <cesar@codesourcery.com>
+
+       PR c/70688
+       * pr70688.c: New file.
+
 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
 
        * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70688.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70688.c
new file mode 100644 (file)
index 0000000..f9556e3
--- /dev/null
@@ -0,0 +1,27 @@
+/* Verify that reduction variables can appear in data clause.  */
+
+#include <assert.h>
+
+const int n = 100;
+
+int
+main ()
+{
+  int s = 0;
+  int array[n];
+
+  for (int i = 0; i < n; i++)
+    array[i] = i+1;
+
+#pragma acc parallel loop num_gangs (10) copy (s) reduction (+:s)
+  for (int i = 0; i < n; i++)
+    s += array[i];
+
+#pragma acc parallel loop num_gangs (10) reduction (+:s) copy (s)
+  for (int i = 0; i < n; i++)
+    s += array[i];
+
+  assert (s == n * (n + 1));
+
+  return 0;
+}