#ifdef __cplusplus | |
extern "C" | |
#else | |
extern | |
#endif | |
void abort (void); | |
int | |
main (void) | |
{ | |
#define N 5 | |
int array[N][N]; | |
for (int i = 0; i < N; i++) | |
{ | |
#pragma omp target enter data map(alloc: array[i:1][0:N]) | |
#pragma omp target | |
for (int j = 0; j < N; j++) | |
array[i][j] = i + j; | |
#pragma omp target exit data map(from: array[i:1][0:N]) | |
} | |
for (int i = 0; i < N; i++) | |
for (int j = 0; j < N; j++) | |
if (array[i][j] != i + j) | |
abort (); | |
return 0; | |
} |