[PR92854] Add 'libgomp.oacc-c-c++-common/pr92854-1.c'
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 9 Dec 2019 11:40:17 +0000 (12:40 +0100)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Mon, 9 Dec 2019 11:40:17 +0000 (12:40 +0100)
... to document the status quo.

libgomp/
PR libgomp/92854
* testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: New file.

From-SVN: r279120

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

index 6ef2f24e4d50fde5e5710cf1f9cebe2cbc8d38a1..aac3b1887b026247d5b72b64693603fa8176177a 100644 (file)
@@ -1,5 +1,8 @@
 2019-12-09  Thomas Schwinge  <thomas@codesourcery.com>
 
+       PR libgomp/92854
+       * testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: New file.
+
        * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New file.
 
        * target.c (gomp_exit_data): Use 'gomp_remove_var'.
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr92854-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr92854-1.c
new file mode 100644 (file)
index 0000000..6ba96b6
--- /dev/null
@@ -0,0 +1,31 @@
+/* Verify that 'acc_unmap_data' unmaps even in presence of dynamic reference
+   counts.  */
+
+/* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
+
+#include <assert.h>
+#include <stdlib.h>
+#include <openacc.h>
+
+int
+main ()
+{
+  const int N = 180;
+
+  char *h = (char *) malloc (N);
+  char *d = (char *) acc_malloc (N);
+  if (!d)
+    abort ();
+  acc_map_data (h, d, N);
+
+  char *d_ = (char *) acc_create (h + 3, N - 77);
+  assert (d_ == d + 3);
+
+  d_ = (char *) acc_create (h, N);
+  assert (d_ == d);
+
+  acc_unmap_data (h);
+  assert (!acc_is_present (h, N));
+
+  return 0;
+}