gcc/libgomp/testsuite/libgomp.oacc-c-c++-common/pr88288.c
Cesar Philippidis fe570ff8d4 [PR88288, OpenACC, libgomp] Adjust offsets for present data clauses
Make libgomp respect the on device offset of subarrays which may arise in
present data clauses.

	libgomp/
	PR libgomp/88288
	* oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs.
	* testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>

From-SVN: r266688
2018-11-30 21:39:49 +01:00

42 lines
690 B
C

/* Test present data clauses in acc offloaded regions when the
subarray inside the present clause does not have the same base
offset value as the subarray in the enclosing acc data or acc enter
data variable. */
#include <assert.h>
void
offset (int *data, int n)
{
int i;
#pragma acc parallel loop present (data[0:n])
for (i = 0; i < n; i++)
data[i] = n;
}
int
main ()
{
const int n = 30;
int data[n], i;
for (i = 0; i < n; i++)
data[i] = -1;
#pragma acc data copy(data[0:n])
{
offset (data + 10, 10);
}
for (i = 0; i < n; i++)
{
if (i < 10 || i >= 20)
assert (data[i] == -1);
else
assert (data[i] == 10);
}
return 0;
}