1 #ifdef __cplusplus
2 extern "C"
3 #else
4 extern
5 #endif
6 void abort (void);
7
8 int
9 main (void)
10 {
11 #define N 5
12 int array[N][N];
13
14 for (int i = 0; i < N; i++)
15 {
16 #pragma omp target enter data map(alloc: array[i:1][0:N])
17
18 #pragma omp target
19 for (int j = 0; j < N; j++)
20 array[i][j] = i + j;
21
22 #pragma omp target exit data map(from: array[i:1][0:N])
23 }
24
25 for (int i = 0; i < N; i++)
26 for (int j = 0; j < N; j++)
27 if (array[i][j] != i + j)
28 abort ();
29
30 return 0;
31 }