Retro68/gcc/libgomp/testsuite/libgomp.c++/target-has-device-addr-5.C
2022-10-27 20:55:19 +02:00

34 lines
608 B
C

/* Testing 'has_device_addr' clause on the target construct with reference. */
#include <omp.h>
int
main ()
{
int *dpx = (int*)omp_target_alloc (sizeof(int), 0);
int **dpy = (int**)omp_target_alloc (sizeof(int*), 0);
#pragma omp target is_device_ptr(dpx, dpy)
{
*dpx = 42;
int z = 77;
*dpy = &z;
}
int& x = *dpx;
int*& y = *dpy;
#pragma omp target has_device_addr(x, y)
{
x = 24;
y = &x;
}
#pragma omp target has_device_addr(x, y)
if (x != 24 || y != &x)
__builtin_abort ();
omp_target_free(dpx, 0);
omp_target_free(dpy, 0);
}