// RUN: %libomptarget-compile-run-and-check-generic | |
// REQUIRES: libc | |
#include <stdio.h> | |
#include <stdlib.h> | |
#pragma omp declare target to(malloc) | |
#pragma omp declare target to(free) | |
int main() { | |
unsigned h_x; | |
unsigned *d_x; | |
#pragma omp target map(from : d_x) | |
{ | |
d_x = malloc(sizeof(unsigned)); | |
*d_x = 1; | |
} | |
#pragma omp target is_device_ptr(d_x) map(from : h_x) | |
{ h_x = *d_x; } | |
#pragma omp target is_device_ptr(d_x) | |
{ free(d_x); } | |
// CHECK: PASS | |
if (h_x == 1) | |
fputs("PASS\n", stdout); | |
} |