aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/testsuite/libgomp.c++/pr108286.C29
1 files changed, 29 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c++/pr108286.C b/libgomp/testsuite/libgomp.c++/pr108286.C
new file mode 100644
index 0000000..ee88c2f
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c++/pr108286.C
@@ -0,0 +1,29 @@
+// PR c++/108286
+// { dg-do run }
+
+struct S {
+ int
+ foo ()
+ {
+ int res = 0;
+#pragma omp target map(size, ptr[:size], res) nowait
+ res = ptr[size - 1];
+#pragma omp taskwait
+ return res;
+ }
+
+ unsigned size;
+ int *ptr;
+};
+
+int
+main ()
+{
+ S s;
+ int buf[5];
+ s.size = 5;
+ s.ptr = buf;
+ buf[4] = 42;
+ if (s.foo () != 42)
+ __builtin_abort ();
+}