target-implicit-map-1.c 494 B

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