blob: 14ed10df7025ce40a84a7fa4eb295d5d405f965d [file] [log] [blame]
// { dg-do run }
#include <cassert>
template <typename T>
void adjust (T param)
{
#pragma omp declare mapper (T x) map(to:x.len, x.base) \
map(tofrom:x.base[0:x.len])
#pragma omp target
for (int i = 0; i < param.len; i++)
param.base[i]++;
}
struct S {
int len;
int *base;
};
int main (int argc, char *argv[])
{
S a;
a.len = 100;
a.base = new int[a.len];
for (int i = 0; i < a.len; i++)
a.base[i] = 0;
adjust (a);
for (int i = 0; i < a.len; i++)
assert (a.base[i] == 1);
return 0;
}