e307b05f43
PR libgomp/92511 libgomp/ * oacc-mem.c (present_create_copy): Fix device pointer return value in case of "present" subarray. Use tgt->tgt_start instead of tgt->to_free in non-present/create case. (delete_copyout): Change error condition to fail only on copies outside of mapped block. Adjust error message accordingly. * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Adjust expected error message. * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Allow test to pass now. * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r278514
46 lines
821 B
C
46 lines
821 B
C
/* Exercise acc_copyin and acc_copyout on nvidia targets. */
|
|
|
|
/* { dg-do run { target openacc_nvidia_accel_selected } } */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <openacc.h>
|
|
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
const int N = 256;
|
|
int i;
|
|
unsigned char *h1, *h2;
|
|
|
|
h1 = (unsigned char *) malloc (N);
|
|
|
|
for (i = 0; i < N; i++)
|
|
{
|
|
h1[i] = 0xab;
|
|
}
|
|
|
|
(void) acc_copyin (h1, N);
|
|
|
|
h2 = (unsigned char *) malloc (N);
|
|
|
|
for (i = 0; i < N; i++)
|
|
{
|
|
h2[i] = 0xde;
|
|
}
|
|
|
|
(void) acc_copyin (h2, N);
|
|
|
|
fprintf (stderr, "CheCKpOInT\n");
|
|
acc_copyout (h1, N + N);
|
|
|
|
free (h1);
|
|
free (h2);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
|
|
/* { dg-output "\\\[\[0-9a-fA-FxX\]+,\\\+512\\\] outside mapped block \\\[\[0-9a-fA-FxX\]+,\\\+256\\\]" } */
|
|
/* { dg-shouldfail "" } */
|