blob: 7a40d01c33f5eb75d57c1d5be455c34a6f1d392e [file]
#include <omp.h>
#include <assert.h>
int f (int dev_num)
{
static int X[1] = { 5 };
#pragma omp declare target local(X)
int res;
#pragma omp target map(from: res) device(dev_num)
res = ++X[0];
return res;
}
int main (void)
{
int cnt;
cnt = f (omp_initial_device);
assert (cnt == 6);
cnt = f (omp_initial_device);
assert (cnt == 7);
if (omp_get_num_devices () > 0)
{
cnt = f (omp_default_device);
assert (cnt == 6);
cnt = f (omp_default_device);
assert (cnt == 7);
cnt = f (omp_default_device);
assert (cnt == 8);
cnt = f (omp_default_device);
assert (cnt == 9);
cnt = f (omp_initial_device);
assert (cnt == 8);
}
else
{
cnt = f (omp_default_device);
assert (cnt == 8);
}
return 0;
}