/* Testing 'has_device_addr' clause on the target construct with reference. */ #include 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); }