blob: d8d3f7f1f99a32f178cf3239fca92c2f0fe49ef8 [file] [log] [blame]
/* { dg-do run } */
#include <cassert>
#define N 1024
class M {
int array[N];
public:
M ()
{
for (int i = 0; i < N; i++)
array[i] = 0;
}
void incr_with_this (int c)
{
#pragma omp target map(this->array[:N])
for (int i = 0; i < N; i++)
array[i] += c;
}
void incr_without_this (int c)
{
#pragma omp target map(array[:N])
for (int i = 0; i < N; i++)
array[i] += c;
}
void incr_implicit (int c)
{
#pragma omp target
for (int i = 0; i < N; i++)
array[i] += c;
}
void check (int c)
{
for (int i = 0; i < N; i++)
assert (array[i] == c);
}
};
int
main (int argc, char *argv[])
{
M m;
m.check (0);
m.incr_with_this (3);
m.check (3);
m.incr_without_this (5);
m.check (8);
m.incr_implicit (2);
m.check (10);
return 0;
}